Mysql表操做

數據之表操做

建立表mysql

語法: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建立的信息

刪除表sql

#drop table 表名

drop table student;

修改表code

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模糊查詢

修改rem

update students set name = "Eric" where id=3;

刪除it

delete from students where id>3;

排序io

排序
    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倒敘排列

分組table

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)的名字

鏈接date

  • 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;             -->確認提交
相關文章
相關標籤/搜索