1、創建表:
關鍵字(保留字)CREATE TABLE
例子一:教師表
CREATE TABLE teacher ( teacher_id varchar(50) not null, teacher_name varchar(100) not null default'', gender varchar(10) not null default 'F', );
例子二:班級表
CREATE TABLE class ( class_id varchar(50) not null, class_name varchar(100) not null default'' );
例子三:學生表
CREATETABLEstudent ( student_id varchar(50) not null, student_name varchar(100) not null default'', gender varchar(10) not null default'', age integer not null default 0,class_idvarchar(50)notnulldefault'' )
2、表的修改操作:
更新表:RENAMETABLE舊表名TO新表名;更新字段名:ALTER TABLE 表名 CHANGE 舊字段名 新字段名 字段類型;更新字段類型、NULL值、默認值:ALTER TABLE 表名 MODIFY 字段名 新字段類型;删除字段默認值:ALTER TABLE 表名 ALTER COLUMN 字段名 DROP DEFAULT;設置主鍵:ALTER TABLE 表名 ADD PRIMARY KEY(主鍵字段列表);删除主鍵:ALTER TABLE 表名 DROP PRIMARY KEY;新增字段:ALTER TABLE 表名 ADD COLUMN 新字段名 字段類型及其他屬性;删除字段:ALTER TABLE 表名 DROP COLUMN 字段名;删除表:DROP TABLE 表名;克隆表:SELECT * INTO teacher_bak FROM teacher;(方法一) CREATE TABLE teacher_bak AS SELECT *FROM teacher(方法二) (以表名teacher為例)
插入整行字段:INSERT INTO teacher VALUES ('T0001','高齊妍','男');(方法一) INSERT INTO teacher(teacher_id,teacher_name,gender) VALUES ('T0001','高齊妍','男');(方法二更安全)
3、查詢數據:SELECT 字段列表 FROM 表名;
SELECT teacher_id FROM teacher;
SELECT teacher_id,teacher_name,gender FROM teacher;
4、排序返回結果:SELECT 字段列表 FROM 表名
ORDER BY 字段1[ASC/DESC],字段2[ASC/DESC]...; (ASC升序,DESC降序)
按age升序排列:SELECT class_id,student_id,student_name,gender,birth_day,age FROM student ORDER BY age ASC; #等價寫法如下: SELECT class_id,student_id,student_name,gender,birth_day,age FROM student ORDER BY age;
按age和student_name升序排列:SELECT class_id,student_id,student_name,gender,birth_day,age FROM student ORDER BY age ASC,student_name ASC; #等價寫法如下: SELECT class_id,student_id,student_name,gender,birth_day,age FROM student ORDER BY 6 ASC,3 ASC; #6和3表示排在第6和排在第3的字段
返回前幾行:關鍵字LIMIT
寫法:
SELECT 字段列表 FROM 表名 LIMIT 10;#返回查詢結果的前10行
返回中間幾行:關鍵字 LIMIT M OFFSET N (從第N行開始,返回M行記錄)
兩種寫法:
SELECT 字段列表 FROM 表名 LIMIT M OFFSET N;
SELECT 字段列表 FROM 表名 LIMIT N,M;
特例:SELECT 字段列表 FROM 表名 LIMIT 0,10;等價于
SELECT 字段列表 FROM 表名 LIMIT 10;
返回後幾行:TOP、LIMIT
舉例:
第1步:先按學生編号倒序排序;
第2步:返回排序後的前5行;
第3步:将前5行數據升序排序;
SELECT *FROM ( SELECT TOP 5 * FROM student ORDER BY student _id DESC )a ORDER BY student_id ASC
5、過濾數據:關鍵字WHERE
SELECT 字段列表 FROM 表名 WHERE 過濾條件:
例子:
SELECT student_id,student_name FROM student WHERE gender='男';
SELECT *FROM student WHERE age<>10;
過濾NULL值:
例子:
SELECT *FROM student WHERE student_id NOT IN('S20160001','S20160002');
SELECT *FROM student WHERE class IS NULL;
關鍵字BETWEEN:
例子:
SELECT *FROM student WHERE student_id NOT IN('S20160001','S20160002');
關鍵字IN(包含)、NOT IN(不包含):
例子:
SELECT *FROM student WHERE student_id NOT IN('S20160001','S20160002');
SELECT *FROM student WHERE student_id NOT IN('S20160001','S20160002');
SELECT *FROM student WHERE student_id NOT IN('S20160001','S20160002');
6、高級過濾數據:
(1)、使用通配符過濾數據:關鍵字LIKE
百分号% 匹配0~多個任意字符
下劃線_ 匹配1個任意字符
方括号[]、[^] 匹配1個字符集中的字符 #MySQL不支持方括号
例子:
SELECT *FROM student WHERE student_name LIKE '陳%'; #選出學生中姓陳的同學
SELECT *FROM student WHERE student_name LIKE '劉_'; #選出學生中姓劉且名字隻有兩個字的同學
SELECT *FROM student WHERE student_name LIKE '%慧'; #選出學生中名字裡有慧字的同學
以下兩句不支持在MySQL中查詢:
SELECT *FROM student WHERE student_id LIKE 'S200[678]'; #選出學生中學号為S2006、S2007、S2008的同學
SELECT *FROM student WHERE student_id LIKE 'S200[^678]'; #選出學生中學号不為S2006、S2007、S2008的同學
使用通配符的注意點:
不要過度使用通配符;
如果确實需要使用,也盡量不要把通配符用在匹配模式的開始處;
要特别注意通配符的位置,否則很有可能返回的結果與預期不一緻。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!