mysql 經常使用語句

打開數據庫:sudo service mysql start
使用root 登陸:mysql -u root
建立數據庫:CREATE DATABASE mysql_shiyan;
查詢數據庫:show databases;
鏈接數據庫:use mysql_shiyan;
查詢表:show tables;
建立表:CREATE TABLE employee(id int(10),name char(20),phone(12));
刪除表:DROP DATABASE mysql_shiyan;
插入表數據:INSERT INTO employee(id ,name,phone) VALUES (01,'TOM',18868830303);
 
一、數據類型:
INT 4 整數
FLOAT 4 單精度浮點數
DOUBLE 8 雙精度浮點數
ENUM 單選,好比性別 ENUM('a','b','c')
SET 多選 SET('1','2','3')
DATE 3 日期 YYYY-MM-DD
TIME 3 時間點或持續時間 HH:MM:SS
YEAR 1 年份值 YYYY
CHAR 0~255 定長字符串
VARCHAR 0~255 變長字符串
TEXT 0~65535 長文本數據
 
二、 在MySQL中,一般有這幾種約束
約束類型:主鍵 默認值 惟一 外鍵 非空
關鍵字: PRIMARY KEY DEFAULT UNIQUE FOREIGN KEY NOT NULL
 
主鍵 (PRIMARY KEY)是用於約束表中的一行,做爲這一行的惟一標識符
默認值約束 (DEFAULT) 規定,當有 DEFAULT 約束的列,插入數據爲空時,將使用默認值。
惟一約束 (UNIQUE) 比較簡單,它規定一張表中指定的一列的值必須不能有重複值,即這一列每一個值都是惟一的。
外鍵約束,一個表能夠有多個外鍵,每一個外鍵必須 REFERENCES (參考) 另外一個表的主鍵,被外鍵約束的列,取值必須在它參考的列中有對應值。
非空約束 (NOT NULL),聽名字就能理解,被非空約束的列,在插入值時必須非空。
 
CREATE TABLE employee
(
id INT(10) PRIMARY KEY,
name CHAE(20) DEFAULT 'Tom',
UNIQUE (phone),
salary INT(10) NOT NULL,
);
 
三、WHERE限制條件
數學符號 (=,<,>,>=,<=)
OR(或) 和 AND(且)和BETWEEN(包含)
select name,age from employee where age>25 or age>30;
IN和NOT IN
SELECT name,age,phone,in_dpt FROM employee WHERE in_dpt NOT IN ('dpt1','dpt3');
通配符LIKE
其中 _ 表明一個未指定字符,% 表明不定個未指定字符。
SELECT name,age,phone FROM employee WHERE phone LIKE '1101__';
SELECT name,age,phone FROM employee WHERE name LIKE 'J%';
ORDER BY 排序
ASC和DESC升序或降序
SELECT name,age,salary,phone FROM employee ORDER BY salary DESC;
 
四、SQL 內置函數和計算
函數名: COUNT SUM AVG MAX MIN
做用: 計數 求和 求平均值 最大值 最小值
 
SELECT MAX(salary) AS max_salary,MIN(salary) FROM employee; 使用AS關鍵詞能夠給值重命名
 
五、子查詢
處理多個表才能得到所需的信息。
例如:想要知道名爲 "Tom" 的員工所在部門作了幾個工程。員工信息儲存在 employee 表中,但工程信息儲存在project 表中。
SELECT of_dpt,COUNT(proj_name) AS count_project FROM project
WHERE of_dpt IN (SELECT in_dpt FROM employee WHERE name='Tom');
 
六、鏈接查詢
在處理多個表時,子查詢只有在結果來自一個表時纔有用。但若是須要顯示兩個表或多個表中的數據,這時就必須使用鏈接 (join) 操做。
鏈接的基本思想是把兩個或多個表看成一個新的表來操做,以下:
SELECT id,name,people_num
FROM employee,department
WHERE employee.in_dpt = department.dpt_name
ORDER BY id;
 
SELECT id,name,people_num
FROM employee JOIN department
ON employee.in_dpt = department.dpt_name
ORDER BY id;
 
七、重命名一張表
重命名一張表的語句有多種形式,如下 3 種格式效果是同樣的:
RENAME TABLE 原名 TO 新名字;
ALTER TABLE 原名 RENAME 新名;
ALTER TABLE 原名 RENAME TO 新名;
刪除一張表:
DROP TABLE 表名字;
增長一列:
ALTER TABLE 表名字 ADD COLUMN 列名字 數據類型 約束;
ALTER TABLE 表名字 ADD 列名字 數據類型 約束 AFTER 列名稱; (「AFTER 列1」 表示新增的列被放置在 「列1」 的後面)
ALTER TABLE employee ADD test INT(10) DEFAULT 11 FIRST;(放在第一列的位置,使用 FIRST)
刪除一列:
ALTER TABLE 表名字 DROP COLUMN 列名字;(語句後面不須要有數據類型、約束或位置信息)
或: ALTER TABLE 表名字 DROP 列名字;
重命名一列:
這條語句其實不僅可用於重命名一列,準確地說,它是對一個列作修改(CHANGE) :
ALTER TABLE 表名字 CHANGE 原列名 新列名 數據類型 約束;
改變數據類型:
要修改一列的數據類型,除了使用剛纔的CHANGE語句外,還能夠用這樣的MODIFY語句:
ALTER TABLE 表名字 MODIFY 列名字 新數據類型;
修改表中某個值:
大多數時候咱們須要作修改的不會是整個數據庫或整張表,而是表中的某一個或幾個數據,這就須要咱們用下面這條命令達到精確的修改:
UPDATE 表名字 SET 列1=值1,列2=值2 WHERE 條件;
刪除一行記錄:
刪除表中的一行數據,也必須加上WHERE條件,不然整列的數據都會被刪除。刪除語句:
DELETE FROM 表名字 WHERE 條件;
相關文章
相關標籤/搜索