天天看點

MYSQL資料庫基礎和常用文法彙總02篇-基礎操作操作SQL語句

作者:luckyxue

【一、基礎操作SQL語句】

--------------------------------

show databases; 檢視庫

create database CHEN; 建立庫CHEN

use CHEN; 選擇庫

drop database stu; 删除庫stu

show tables; 檢視庫中的表

建立表`user`

create table `emp`(

`eno` int unsigned auto_increment,

`ename` varchar(80) not null,

`eage` int unsigned,

`esex` varchar(10) not null,

`edate` date,

`etel` int(20),

`eblood` varchar(10),

primary key(`eno`)

) engine=InnoDB default charset=utf8;

create table `teacher`(

`tno` int unsigned auto_increment,

`tname` varchar(40) not null,

`tage` int unsigned,

`ttel` varchar(15),

primary key(`tno`)

) engine=InnoDB default charset=utf8;

desc stu; #檢視表中字段結構

describe stu; #同上

show columns from stu #同上

show create table stu; #顯示表結構

create table tab_new like tab_old #複制,使用舊表建立新表,類似于複制

drop table student; #删除表student

create temporary table stu12 like tab_old #建立臨時表,這裡和建立普通表一樣

rename table stu to stu11; #修改表名,重命名

Alter table tabname add primary key(col) #添加主鍵

Alter table tabname drop primary key(col) #删除主鍵

Alter table tabname add foreigh key(id) references dept(did) #添加外鍵

--------------------------------------------

例子:關于有外鍵關聯表無法删除

建部門表dept

create table dept(

`did` int PRIMARY key auto_increment,

`dname` varchar(30) ,

) engine=InnoDB default charset=utf8;

建員工表emp

create table emp(

`eid` int PRIMARY key auto_increment,

`ename` varchar(30) ,

`sal` DOUBLE,

dno int,

FOREIGN key(dno) REFERENCES dept(did) #創立外鍵

) engine=InnoDB default charset=utf8;

DELETE from dept where did=2 #無法删除,提示錯誤,因為表dept中有存在另外一個關聯的表emp.

--------------------------------------------

create [unique] index idxname on tabname(col….) 建立索引

drop index idxname 删除索引

注:索引是不可更改的,想更改必須删除重建立。

建立視圖:create view viewname as select statement

删除視圖:drop view viewname

desc stu; #檢視表中字段結構

describe stu; #同上

show columns from stu #同上

show create table stu; #顯示表結構,看得比較整齊

show tables; 檢視建立的表

select * from stu; #檢視表中是否有内容,empty

insert into stu11

values

(5,'shenzhen33',22,'female','2020-03-13','13812349'),

(6,'shenzhe44',48,'male','2020-03-13','13812340'),

(7,'shenzhen55',28,'male','2020-03-13','13812340');

【二、資料操作語言】

insert into stu values(5,"wang",26,"male"); #往表stu中插入一行資料

insert into stu #往表stu中插入資料

(id,name,age,sex)

values

(1,"chenzj",20,"male"),(3,"lishi",25,"female"),(4,"mary",21,"female"); #可同時插入一行或多行

select * from stu; #檢視表中資料

隻複制表結構到新表

CREATE TABLE 新表 SELECT * FROM 舊表 WHERE 1=2;

複制表結構及資料到新表

CREATE TABLE 新表 SELECT * FROM 舊表

複制舊表的資料到新表(假設兩個表結構一樣)

INSERT INTO 新表 SELECT * FROM 舊表

複制舊表的資料到新表(假設兩個表結構不一樣)

INSERT INTO 新表(字段1,字段2,.......) SELECT 字段1,字段2,...... FROM 舊表

insert into stu #隻選擇某一列插入資料,且非空字段必須要存在

(name,sex,date)

values

("wangwu","male","2020-03-12");

alter table stu add column tel int(15); #修改表,增加一列tel

alter table stu change tel telphone VARCHAR(10); #修改表,修改列tel為telphone

alter table stu drop coulumn telphone; #修改表,删除列telphone

update stu set tel='13512345678'; #更新表,把列tel全部加上值

update stu set date='2020-03-11' where id=1; #更新表,隻針對第1行加上日期

update stu set date='2020-03-11' where sex='female' and age='25'; #更新表,多條件篩選後加上日期

update stu set age=21,sex='female' where id=1; #更新表,同時更新第1行中2個字段; 【注:字段間要用,隔開】

update stu set date=NULL where id=4; #更新表,把第4行日期更新為空

update stu set tel=NULL; #更新表,把tel列全部值更新為空

delete from stu where id=5; #删除第5行

繼續閱讀