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