1.CURD的含義 C(Create):創建 R(Read):查詢 U(Update):修改 D(Delete):刪除 2.SQL語句分類 1) Data Definition Language (DDL 數據定義語言) 如:建庫,建表 2) Data Manipulation Language(D ...
1.CURD的含義
C(Create):創建 R(Read):查詢 U(Update):修改 D(Delete):刪除
2.SQL語句分類
1) Data Definition Language (DDL 數據定義語言) 如:建庫,建表
2) Data Manipulation Language(DML 數據操縱語言),如:對錶中的記錄操作增刪改
3) Data Query Language(DQL 數據查詢語言),如:對錶中的查詢操作
4) Data Control Language(DCL 數據控制語言),如:對用戶許可權的設置
3.DDL操作資料庫
1)創建資料庫
-- 直接創建資料庫db1 create database db1; -- 判斷是否存在,如果不存在則創建資料庫db2 create database if not exists db2; -- 創建資料庫並指定字元集為gbk create database db3 default character set gbk;
2)查看資料庫
-- 查看所有的資料庫 show databases; -- 查看某個資料庫的定義信息 show create database db3; show create database db1;
3)修改資料庫
-- 將 db3 資料庫的字元集改成 utf8 alter database db3 character set utf8;
4)刪除資料庫
-- 刪除 db2 資料庫 drop database db2;
5)使用資料庫
-- 查看正在使用的資料庫 select database(); -- 改變要使用的資料庫 use db4
4.DDL操作表結構
前提先使用某個資料庫
1)創建表
-- 創建 student 表包含 id,name,birthday 欄位 create table student ( id int, -- 整數 name varchar(20), -- 字元串 birthday date -- 生日,最後沒有逗號 );
2)查看表
-- 查看 day21 資料庫中的所有表 use day21; show tables; -- 查看 student 表的結構 desc student;
-- 查看 student 的創建表 SQL 語句 show create table student;
3)快速創建一個表結構相同的表
-- 創建一個s1的表與student結構相同 create table s1 like student; desc s1;
4)刪除表
-- 直接刪除表s1表 drop table s1; -- 判斷表是否存在並刪除s1表 drop table if exists s1;
5).修改表結構
-- 為學生表添加一個新的欄位 remark,類型為 varchar(20) alter table student add remark varchar(20); -- 將 student 表中的 remark 欄位的改成 varchar(100) alter table student modify remark varchar(100); -- 將 student 表中的 remark 欄位名改成 intro,類型 varchar(30) alter table student change remark intro varchar(30); -- 刪除 student 表中的欄位 intro alter table student change remark intro varchar(30); 將學生表 student 改名成 student2 rename table student to student2; 將 student2 表的編碼修改成 gbk alter table student2 character set gbk;
5.DML操作表中的數據
1) 插入數據
-- 插入所有的列,向學生表中 insert into student (id,name,age,sex) values (1, 'aa', 20, '男'); insert into student (id,name,age,sex) values (2, 'bb', 16, '男'); -- 插入所有列 insert into student values (3, 'cc', 18, '男', 'zzz'); -- 如果只插入部分列,必須寫列名 insert into student values (4, 'dd', 18, '男');
2)更新表記錄
-- 不帶條件修改數據,將所有的性別改成女 update student set sex = '女'; -- 帶條件修改數據,將id號為2的學生性別改成男 update student set sex='男' where id=2; -- 一次修改多個列,把id為3的學生,年齡改成26歲,address改成北京 update student set age=26, address='北京' where id=3;
3)刪除表記錄
-- 帶條件刪除數據,刪除id為1的記錄 delete from student where id=1; -- 不帶條件刪除數據,刪除表中的所有數據 delete from student;
6.DQL查詢表中的數據
1)簡單查詢
-- 查詢所有的學生: select * from student; -- 查詢 student 表中的 name 和 age 列 select name,age from student;
2)指定列的別名進行查詢
-- 使用別名 select name as 姓名,age as 年齡 from student; -- 表使用別名 select st.name as 姓名,age as 年齡 from student as st
3)清除重覆值
-- 查詢學生來至於哪些地方 select address from student; -- 去掉重覆的記錄 select distinct address from student;
4)查詢結果參與運算
select * from student; -- 給所有的數學加 5 分 select math+5 from student; -- 查詢 math + english 的和 select * from student; select *,(math+english) as 總成績 from student; -- as 可以省略 select *,(math+english) 總成績 from student;
5)條件查詢
-- 查詢math分數大於80分的學生 select * from student3 where math>80; -- 查詢english分數小於或等於80分的學生 select * from student3 where english <=80; -- 查詢age等於20歲的學生 select * from student3 where age = 20; -- 查詢age不等於20歲的學生,註:不等於有兩種寫法 select * from student3 where age <> 20; select * from student3 where age != 20;
-- 邏輯運算符
-- 查詢 age 大於 35 且性別為男的學生(兩個條件同時滿足) select * from student3 where age>35 and sex='男'; -- 查詢 age 大於 35 或性別為男的學生(兩個條件其中一個滿足) select * from student3 where age>35 or sex='男'; -- 查詢 id 是 1 或 3 或 5 的學生 select * from student3 where id=1 or id=3 or id=5;
-- in關鍵字
-- 查詢id是1或3或5的學生 select * from student3 where id in(1,3,5); -- 查詢id不是1或3或5的學生 select * from student3 where id not in(1,3,5);
-- 範圍查詢
-- english 成績大於等於 75,且小於等於 90 的學生 select * from student3 where english between 75 and 90;
-- like模糊查詢
-- 查詢姓馬的學生 select * from student3 where name like '馬%'; select * from student3 where name like '馬'; -- 查詢姓名中包含'德'字的學生 select * from student3 where name like '%德%'; -- 查詢姓馬,且姓名有兩個字的學生 select * from student3 where name like '馬_';