資料之表操作
創建表
語法:CREATE TABLE table_name (column_name column_type);
create table student(
-> id INT NOT NULL AUTO_INCREMENT,
-> name CHAR(32) NOT NULL,
-> age INT NOT NULL,
-> regiiter_date DATE,
-> PRIMARY KEY(id)
-> );
auto_increment 表示:自增1,寫入內容為空時,默認從1,2,3...往下填充寫入表格中,primary key: 表示約束(不能重復且不能為空); 加速查找not null: 不為空
查看表
show tables; -->查看有哪些表
desc student; --> 查看student表的資訊
show create table student; -->查看表student創建的資訊
洗掉表
#drop table 表名
drop table student;
修改表
1.增加
ALTER TABLE student ADD sex CHAR(32); #-->增加一列
2.洗掉
ALTER TABLE student DROP sex; #-->洗掉一列
3.修改表名
ALTER TABLE student RENAME TO students; #-->重命名
4.修改列名
ALTER TABLE students CHANGE regisiter_date register_date DATE;
#change 欄位名,型別都可以改,modify只能改型別
插入資料
語法:
INSERT INTO table_name ( field1, field2,...fieldN )
VALUES
( value1, value2,...valueN );
插入資料:
mysql> INSERT INTO student(name,age,regisiter_date)
-> VALUES('derek',22,'2017-01-01');
mysql> INSERT INTO student(name,age,regisiter_date)
-> VALUES('jack',20,'2017-03-03');
INSERT INTO student(name,age,regisiter_date) VALUES('Tom',25,'2017-05-05');
INSERT INTO student(name,age,regisiter_date) VALUES('David',25,'2017-07-07');
SELECT * FROM student; -->看表里面的內容
查看資料
語法
1.SELECT column_name,column_name
2.FROM table_name
3.[WHERE Clause]
4.[OFFSET M ][LIMIT N]
查詢陳述句中你可以使用一個或者多個表,表之間使用逗號(,)分割,并使用WHERE陳述句來設定查詢條件,
SELECT 命令可以讀取一潭訓者多條記錄,
你可以使用星號(*)來代替其他欄位,SELECT陳述句會回傳表的所有欄位資料
你可以使用 WHERE 陳述句來包含任何條件,
你可以通過OFFSET指定SELECT陳述句開始查詢的資料偏移量,默認情況下偏移量為0,
你可以使用 LIMIT 屬性來設定回傳的記錄數,
語法
1.SELECT * FROM student LIMIT 2 OFFSET 2;
#limit: 查幾條資料
#offset: 從第幾個開始查
2.SELECT * FROM student where id>1;
#條件判斷
3.SELECT * FROM student where id>1 and age<22;
#多個條件
4.SELECT * FROM student where name like "De%";
#like模糊查詢
修改
update students set name = "Eric" where id=3;
洗掉
delete from students where id>3;
排序
排序
select * from 表 order by 列 asc - 根據 “列” 從小到大排列
select * from 表 order by 列 desc - 根據 “列” 從大到小排列
select * from 表 order by 列1 desc,列2 asc - 根據 “列1” 從大到小排列,如果相同則按列2從小到大排
select * from students order by id desc;
#--->按id倒敘排列
分組
1.按名字分組后,并且統計名字出現的次數
select name,count(*) from students group by name;
2.按名字分組后,把年齡加起來
select name,sum(age) from students group by name;
select name,sum(age) as rename_sumage from students group by name;
#加as,可以自定義sum(age)的名字
連接
- INNER JOIN(內連接,或等值連接):獲取兩個表中欄位匹配關系的記錄,
- LEFT JOIN(左連接):獲取左表所有記錄,即使右表沒有對應匹配的記錄,
- RIGHT JOIN(右連接): 與 LEFT JOIN 相反,用于獲取右表所有記錄,即使左表沒有對應匹配的記錄,
交集
select * from A inner join B on A.a=B.b;
差集
select * from A left join B on A.a=B.b;
select * from A right join B on A.a=B.b;
并集
select * from A left join B on A.a=B.b union select * from A right join B on A.a=B.b;
事務
begin -->開啟
insert into ...... -->要寫入的內容
rollback; -->回滾到原來狀態
commit; -->確認提交
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/68413.html
標籤:MySQL
上一篇:Mysql-概念
下一篇:02、對資料庫的操作
