**MySQL學習程序的一點小筆記**
最近一段時間作為一個學生,我開始了對MySQL的學習,一下就是我學習程序中的一些筆記,歡迎大佬過來指正,我接下來也會繼續自己筆記的上傳,在這里謝謝大家的瀏覽,
– 尋找該表
SELECT * FROM goods_car;
– primary key 主鍵,不能空且唯一
– auto_increment 此列資料是自增長
CREATE TABLE goods_car(
id INT(4) PRIMARY KEY AUTO_INCREMENT,
uid INT(10),
good_id INT(10),
nums INT(10),
STATUS TINYINT(4),
creat_time INT(10),
update_time INT(10)
);
– 洗掉資料庫
DROP TABLE test.people;
– 獨立創建主鍵
– 當表已經生成以后,然后再獨立添加主鍵
CREATE TABLE people(
people_id INT(4),
people_name VARCHAR(10)
);
– 添加主鍵
ALTER TABLE people ADD CONSTRAINT people_pk PRIMARY KEY (people_id);
– 非空約束
DROP TABLE people;
CREATE TABLE people(
people_id INT(4) PRIMARY KEY AUTO_INCREMENT,
people_name VARCHAR(10) NOT NULL
);
– 默認約束
DROP TABLE people;
– default默認值如果為空那么就使用默認值
CREATE TABLE people(
people_id INT(4) PRIMARY KEY,
people_name VARCHAR(10) NOT NULL DEFAULT ‘zhangsan’,
people_age INT(4) NOT NULL DEFAULT ‘22’
);
– 唯一約束unique
– 要不然為空要不然值必須不同
DROP TABLE people;
CREATE TABLE people(
people_id INT(4) PRIMARY KEY AUTO_INCREMENT,
people_name VARCHAR(10) UNIQUE
);
– 外鍵約束
DROP TABLE country;
– 父表
CREATE TABLE country(
country_id INT(4) PRIMARY KEY AUTO_INCREMENT,
country_name VARCHAR(10) UNIQUE
);
– 子表
CREATE TABLE people(
people_id INT(4) PRIMARY KEY AUTO_INCREMENT,
people_name VARCHAR(10) UNIQUE,
country_id INT(4),
– 建立外鍵約束
CONSTRAINT pk_people FOREIGN KEY (country_id) REFERENCES country(country_id)
);
– 基本查詢
SELECT * FROM people,country;
– 添加列的操作
CREATE TABLE people(
people_id INT(4) PRIMARY KEY AUTO_INCREMENT,
people_name VARCHAR(10) UNIQUE
);
– ALTER TABLE 表名 ADD 列名 資料型別 操作
ALTER TABLE people ADD people_age INT(4) NOT NULL;
– 洗掉列的操作
– ALTER TABLE 表名 DROP COLUMN 列名
ALTER TABLE people DROP COLUMN people_age;
– 修改列的資料型別
– ALTER TABLE 表名 MODIFY COLUMN 列名 資料型別
ALTER TABLE people MODIFY COLUMN people_age VARCHAR(10);
– 創建兩張表country.people
CREATE TABLE country(
country_id INT(4),
country_name VARCHAR(10) NOT NULL
);
CREATE TABLE people(
people_id INT(4),
people_name VARCHAR(10) NOT NULL,
country_id INT(4) NOT NULL
);
– 添加約束條件
– ALTER TABLE 表名 ADD CONSTRAINT 約束名稱 約束型別
– 添加主鍵約束
ALTER TABLE people ADD CONSTRAINT pk_people PRIMARY KEY(people_id);
ALTER TABLE country ADD CONSTRAINT pk_country PRIMARY KEY(country_id);
– 添加外鍵約束
ALTER TABLE people ADD CONSTRAINT fk_people FOREIGN KEY (country_id) REFERENCES country(country_id);
– 洗掉約束
– 如果有外鍵,應先洗掉子表外鍵才能再刪父表主鍵
– ALTER TABLE 表名 DROP 約束型別 [約束名稱]
ALTER TABLE people DROP FOREIGN KEY fk_people;
ALTER TABLE country DROP PRIMARY KEY;
– 全查詢 SELECT * FROM 表名1,表名2;
– 查詢列 SELECT 列名1,列名2 FROM 表面1,表名2;
SELECT *FROM people,country;
SELECT country_id FROM people;
– 條件查詢
– SELECT TABLE *|列名 FROM 表名 WHRER 條件運算式
– = <> <= >= and or not
SELECT * FROM people WHERE people_name=‘張三’ AND country_id=2;
– 排序查詢
– SELECT *|列名 FROM 表名 ORDER BY 列名 DESC|ASC
– DESC是降序排序 ASC是升序排序
SELECT * FROM people ORDER BY people_name DESC;
– 模糊查詢
– SELECT *|列名 FROM 表名 WHERE 列名 LIKE ‘’;
SELECT * FROM people WHERE people_name LIKE ‘張%’;-- 查詢姓張的
SELECT * FROM people WHERE people_name LIKE ‘張_’;-- 查詢姓張的且名字只有兩個字
CREATE TABLE country(
country_id INT(4) PRIMARY KEY AUTO_INCREMENT,
country_name VARCHAR(10) NOT NULL
);
CREATE TABLE people(
people_id INT(4) PRIMARY KEY AUTO_INCREMENT,
people_name VARCHAR(10) NOT NULL,
people_age INT(4) NOT NULL
);
ALTER TABLE people ADD country_id INT(4) NOT NULL;
ALTER TABLE people ADD CONSTRAINT fk_people FOREIGN KEY (country_id) REFERENCES country(country_id);
SELECT * FROM people WHERE country_id=1;
– 兩張表的連接查詢
SELECT people_name,people_age,country_name FROM people a JOIN country b ON a.country_id=b.country_id WHERE country_name LIKE ‘中國%’;
– 左外連接
SELECT people_name,people_age,country_name FROM people a LEFT OUTER JOIN country b ON a.country_id=b.country_id WHERE country_name;
– 字符函式
– ascii函式
SELECT ASCII(‘a’),ASCII(‘A’),ASCII(’#’);
– 字符轉二進制,八進制,十六進制
SELECT BIN(‘10’),OCT(‘10’),HEX(‘10’);
– 將兩個字符合并
SELECT CONCAT('hello ',‘world’);
– 字符的位元組數
SELECT LENGTH(‘hello’),LENGTH(‘高勝祥’);
– 字符的長度,常用中文字符
SELECT CHAR_LENGTH(“高勝祥”);
– 回傳字串第一次出現的位置
SELECT INSTR(‘hello’,‘h’);
– substring(str,pos,len) 回傳str從pos位置開始的len字符
SELECT SUBSTRING(‘helloworld’,2,5);
– replace(str,from_str,to_str) 將str的from_str用to_str替換
SELECT REPLACE(‘helloworld’,‘world’,‘hape’);
– 數學函式
– 求絕對值
SELECT ABS(-10.1);
– 求余
SELECT MOD(10,4);
– floor(n) 回傳不大于n的最大整數
SELECT FLOOR(-2.1),FLOOR(2.1);
– ceiling(n) 回傳不小于n的最小整數
SELECT CEILING(2.1),CEILING(-2.1);
– round(n,d) 回傳n的四舍五入值,保留d位小數,d默認0
SELECT ROUND(2.4),ROUND(2.45,1),ROUND(2.1,-1);
– pow(x,y) x的y次冪
SELECT POW(2,4);
– sqrt(n) 回傳非負數n的平方根
SELECT SQRT(4);
– rand() 回傳值再0到1.0的隨機浮點數的值
SELECT RAND();
– truncate(n,d) 截取數字n的d位小數并回傳,不會四舍五入
SELECT TRUNCATE(RAND(),2),TRUNCATE(1.88,1);
– 日期函式
– 回傳當前的系統時間,以’yyyy-mm-dd hh:mm:ss’格式
SELECT SYSDATE(),NOW();
– 以’yyyy-mm-dd’格式回傳當前日期
SELECT CURRENT_DATE();
– year(date)回傳date的年
SELECT YEAR(NOW());
– month(date) 回傳date的月
SELECT MONTH(NOW());
– dayofyear(date) 回傳date是這年的第幾天
SELECT DAYOFYEAR(NOW());
– dayofmonth(date) 回傳date是這月的第幾天
SELECT DAYOFMONTH(NOW());
– weekday(date) dayofweek(date) 回傳date是星期幾 0=星期一…6=星期天
SELECT WEEKDAY(NOW());
– dayofweek(date) 回傳date是星期幾 1=星期一…7=星期天
SELECT DAYOFWEEK(NOW());
– 求時間的差值
SELECT DATEDIFF(CURRENT_DATE(),‘2018-09-12’);
再見,,,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/99472.html
標籤:AI
