SQL常用命令


1、查看已有數據庫

show database  數據庫名稱;

2、切換、連接數據庫

use 數據庫名稱;

3、查看當前連接的數據庫

select database();

 

4、創建數據庫

create database 數據庫名稱;

5、修改,刪除數據庫

alter database 數據庫名稱 character set 字符編碼名稱;

drop database 數據庫名稱;

6、mysql常用數據類型

  • int:整型 double:浮點型,例如double(5,2)表示最多5位,其中必須有2位小數,即最大值為999.99;
  • char:固定長度字符串類型; varchar:可變長度字符串類型; text:字符串類型;
  • blob:字節類型;
  • date:日期類型,格式為:yyyy-MM-dd;
  • time:時間類型,格式為:hh:mm:ss
  • timestamp:時間戳類型 格式為:yyyy-MM-dd hh:mm:ss

 7、查看當前庫已有表:

     show tables;

  查看表定義信息:

     show create table 表名;

  查看表結構:

    desc 表名;
8、創建表
create table 表名( 列名 數據類型(長度), 列名 數據類型(長度), …… );
9、修改表

  a.為emp表添加列address varchar(30)

    alter table emp add address varchar(30);

  b.修改emp表的address 數據長度為40

    alter table emp modify address varchar(40);

  c. 修改address列名為addr

    alter table emp change address addr varchar(40);

  d. 刪除emp表的addr列

    alter table emp drop addr;

  e. 修改emp表的表名為employee

    alter table emp rename to employee; alter table emp rename employee;
10、刪除表
drop table 表名;
11、完整性約束
  完整性約束:保證數據庫表中數據的正確性,合理性等。 

     數據庫約束:

    1. 主鍵約束:用戶保證表中數據的唯一性(沒有重復的數據)
    2. not null:非空約束。約束列中的數據非空
    3. unique:唯一約束。保證列數據的唯一性(不能重復)
    4. 外鍵約束:保證表中數據引用的完整性。

  a.創建主鍵約束:主鍵列值必須非空且唯一,並且一個表有且只有一個主鍵。 
    方式一:

       create table stu ( sid varchar(10) primary key, sname varchar(20) ); 

    方式二:

  create table stu ( sid varchar(10), sname varchar(20), primary key(sid) ); 

    方式三: 先創建表,然后修改表添加主鍵
 create table stu ( sid varchar(10), sname varchar(20) ); alter table stu add primary key(sid);

主鍵自增:auto_increment

create table stu( sid int primary key auto_increment, sname varchar(20) );

b.非空約束:not null 
方式一:

 create table stu( sid int, sname varchar(20) not null );

方式二:alter table stu modify sname varchar(20) not null;

c.唯一約束:unique

create table stu( sid int, sname varchar(20) unique ); alter table stu add address varchar(30) unique;

d.外鍵約束:foreign key

方式一:

 create table dept( deptno int, deptname varchar(20), primary key(deptno) ); create table emp( eid int, ename varchar(20), e_d_no int, primary key(eid), foreign key(e_d_no) references dept(deptno) );

方式二: 
先定義表結構,然后修改表添加主鍵和外鍵(比較常用)

 create table emp( eid int, ename varchar(20), e_d_no int ); create table dept( deptno int, deptname varchar(20) );

修改主表,添加主鍵

alter table dept add primary key(deptno);

修改從表,添加外鍵引用

alter table emp add foreign key(e_d_no) references dept(deptno);
12、DML語句:對表數據的增刪改

相關命令:insert update delete 
1. 向表中插入數據: 
語法:insert into 表名(用逗號分隔的列名列表) values(使用逗號分隔的每列的數據列表); 
如:

  insert into stu(sid,sname,age,gender) values('M_001','tom',23,'male');

2.修改表數據: 
update 表名 set 列名=新值,列名=新值…… [where 子句]; 
如:

  update stu set sname=’jack’;

3. 刪除表中的數據 
使用delete刪除表數據 
語法: delete from 表名 [where 子句]; 
如:delete from stu;

使用truncate刪除表數據: 
語法:truncate [table] stu;

delete和truncate區別 
delete逐條刪除數據(性能較低) 
truncate(截斷表):首先執行drop table刪除表結構, 然后再執行create table創建表結構。性能較優。

DQL操作 
命令只有select 
語法:

SELECT selection_list /*要查詢的列名稱*/ FROM table_list /*要查詢的表名稱*/ [ WHERE condition /*篩選數據行的條件*/ GROUP BY grouping_columns /*對結果分組*/ HAVING condition /*分組后的篩選行的條件*/ ORDER BY sorting_columns /*對結果排序*/ ]

注:[…] 代表可選,而不是語句中有[] 。

0.基本查詢:

select * from stu; /*查詢所有列*/ select sname,age from stu; /*查詢指定列*/
13、條件查詢 

運算符:

  • =、!=、<>、<、<=、>、>=;
  • BETWEEN…AND;
  • IN(set);
  • IS NULL;
  • AND;
  • OR;
  • NOT;

a.查詢年齡大於35歲的人的姓名和年齡

  select sname,age from stu where age>35;

b.查詢年齡在15和35歲的人的姓名和年齡

select sname,age from stu where age between 15 and 35;

c.查詢年齡等於25、35、45歲的人的信息

  select * from stu where age in(25,35,45);

d.查詢沒有填寫性別的人的信息

 select * from stu where gender is null;

e.查詢年齡大於35歲的男性的信息

  select * from stu where age>35 and gender=’male’;

f.查詢年齡大於35歲的信息

select * from stu where age>35; 

g.查詢性別不為空的人的信息

select * from stu where gender is not null;

2.模糊查詢

模糊查詢的通配符: 
% 表示任意數量的字符 
_ 表示任意一個字符 
模糊查詢的關鍵詞:like

a.查詢名字是字母z開頭的人

 select * from stu where sname like 'z%';

b.查詢名字包含b字母的人

select * from stu where sname like '%b%';

c.查詢名字包含n字母其n字母前只有兩個字符的人

 select * from stu where sname like '__n%';

以下查詢使用emp表 
14.列別名 
使用as關鍵字為列定義別名,另外,該關鍵字可以省去

          select ename as '名字', sal as '月薪' from emp e; select ename '名字', sal '月薪' from emp e;

4.排序 
desc降序 asc升序(默認值) 
查看雇員的月薪,並進行排序

 select ename, sal as 'sal' from emp order by sal desc;

15、聚合函數

聚合函數是用來做縱向運算的函數:

  • COUNT():統計指定列不為NULL的記錄行數;
  • MAX():計算指定列的最大值,如果指定列是字符串類型,那么使用字符串排序運算;
  • MIN():計算指定列的最小值,如果指定列是字符串類型,那么使用字符串排序運算;
  • SUM():計算指定列的數值和,如果指定列類型不是數值類型,那么計算結果為0;
  • AVG():計算指定列的平均值,如果指定列類型不是數值類型,那么計算結果為0;

    注意:聚合函數只返回一個結果

a.查詢emp表中月薪大於2500的人數:

     select count(*) from emp where sal>2500;

b.統計所有員工平均工資:

select avg(sal) from emp;

16、多表查詢

笛卡爾積查詢:

select * from emp,dept;

消除笛卡爾積: 
內連接(等值連接)

 select * from emp e,dept d where e.deptno=d.detpno;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM