sql语句

插入数据
Insert into 表名 value(数据);
删除表中数据
Delete from 表名 where 表达式
修改表中数据
Update 表名 set 字段 = 新值,。。。Where 条件
更新字段内容
Update 表名 set 字段名 = 新内容

1、设置非空约束
Create table t_name(
属性名 数据类型 not null,
....
);
2、设置字段的默认值
Create table t_name(
属性名 数据类型 default 默认值,
....
)
3.设置字段自动增加
Create table t_name(
属性名 数据类型 auto_increment,
....
)

3、设置主键约束
Primary key (PK)
//单字段主键
Create table t_name(
属性名 数据类型 primary key,
....
)

create table person5(
id int primary key auto_increment,
name varchar(20) ,
age int,
adds varchar(40),
tel varchar(11)
);

Unique (uk) FK外键 PK主键 UK唯一约束
表的约束
约束性关键字 含义
NOT NULL 约束字段的值不能为空
DEFAULT 设置字段的默认值
UNIQUE KEY(UK) 约束字段的值唯一
PRIMARY KEY(PK) 约束字段为表的主键
AUTO_INCREMENT 设置字段的值为自动增加
FOREIGN KEY(FK) 约束字段为表的外键

create database database-name 创建数据库

show databases 查看所有数据库

use database-name 选择数据库

drop database database-name 删除数据库

create table table-name 创建表

desc table-name 查看表

alter table old-tablename rename to new-tablename 修改表名

alter table table-name change 旧属性名 新的属性名 新的属性类型 同时修改属性名称和属性类型。

alter table table-name add 属性名 属性类型 添加字段

alter table table-name drop 属性名 删除字段

alter table table-name modify 属性名 属性类型 after/first 属性名 ; 调整字段排列位置

alter table table-name drop foreign key 外键约束名 删除外键约束

insert into table-name values(1,"小明",18) 为表的所有字段插入数据

select *from table_name 查看表中数据

select *from table_name where 字段名=值;查看具体的某些数据;

select * from table-name where 字段名 between 值1 and 值2 ;

select * from table-name where 字段名 in(值1 ,值2 );

select * from table-name where 字段名 like '%值%';

select *from table-name where condition1 and/or condition2 多条件查询

select distinct 字段名 from table-name 查询结果不重复

select *from table-name order by 字段名 ase 正序查询

select *from table-name order by 字段名 desc 倒序查询

select *from table-name group by 字段名

select count(字段名)/avg()/sum()/max()/min() from table-name 函数集合

select 函数名称 from table-name group by 字段名;分组查询

update table-name set 字段=新的值 where 字段=值; 更新数据记录

delete from table-name where codition 删除特定数据记录

inner join 内链接
left join 左链接

mysqldump -uroot -ppassword databasename>crl 备份数据库
mysql -uroot -ppassword databasename

create database database-name 创建数据库

insert into 表名(属性)values() 添加到表里;

update table-name set (列明=?) where (行名=a) 修改列的值=?行数=a中

show databases 查看所有数据库

use database-name 选择数据库

drop database database-name 删除数据库

drop table 表1, 表2, . . . 表n;

show create table table-name ;查看表结构

create table table-name 创建表

desc table-name 查看表

create table lianhe(stu_id int,score_id int,name varchar(50),primary key(stu_id,score_id)) auto_ increment ;主键设置

[Constraint <外键名>] foreign key 列名1 [ ,列名2,…] references <主表名> 主键列1 [ ,主键列2,…] 外键设置

alter table stu modify age int first name; 修改位置

alter table old-tablename rename to new-tablename 修改表名

alter table table-name change 旧属性名 新的属性名 新的属性类型 同时修改属性名称和属性类型。

alter table table-name add 属性名 属性类型 添加字段

alter table table-name drop 属性名 删除字段

alter table table-name modify 属性名 属性类型 after/first 属性名 ; 调整字段排列位置

alter table table-name drop foreign key 外键约束名 删除外键约束

insert into stu(id,name,age,sex) values(2,‘李四’,21,’女’),
(4,’赵六’,23,’女’),
(4,’赵六’,23,’女’);

select *from table_name 查看表中数据

select *from table_name where 字段名=值;查看具体的某些数据;

select * from table-name where 字段名 between 值1 and 值2 ;

select * from table-name where 字段名 in(值1 ,值2 );

select * from table-name where 字段名 like '%值%';

select * from stu where name is null;
可以详细查询出我的字段中为空的是那条记录,不是查询某个字段的属性可以为空

select *from table-name where condition1 and/or condition2 多条件查询 (使用and时,条件必须同时满足)

select id,count() from table-name where id<9 group by id having count()>=2;having是分组后条件,把id 满足条件筛选,如果有两个以上的输出

select * from stu left join stu_score on stu.id =stu_score.stu_id left join 表名 on 条件。。。。。;

select count(*) 人数,sum(sal) 总和,max(sal) 最,min(sal) 最小,avg(sal) 平均 from emp;

select distinct 字段名 from table-name 查询结果不重复

select *from table-name order by 字段名 ase 正序查询

select *from table-name order by 字段名 desc 倒序查询

select *from table-name group by 字段名 去重复

select job,count(*) from table-name group by job;按照职位分组并统计各组人数

select count(字段名)/avg()/sum()/max()/min() from table-name 函数集合

select 函数名称 from table-name group by 字段名;分组查询

update table-name set 字段=新的值 where 字段=值; 更新数据记录

select * from table-name limit 8,5;从第九行往后查五行

delete from table-name where codition 删除特定数据记录
delete from stu where id=1;
inner join 内链接
left join 左链接
select * from goods left join mode on mode.modeid=goods.goodsid left join.......;
select * from emp where sal=(select max(sal) from emp);本公司工资最高的员工详细信息

select * from emp where sal>any(select sal from emp where deptno=20);查询大于20部门任意一人工资的人(大于最小的就可以)

Union与union all的区别是union有去重的效果,而union all 没有
select *(属性) from table-name union select *(属性) from table-name;

create view 视图名 as select name '姓名', age '年龄', birthday '出生日期' from student;创建视图

desc 视图名 ;SHOW TABLE STATUS LIKE '视图名';
SHOW CREATE VIEW 视图名(详细定义)

mysqldump -uroot -ppassword databasename>crl 备份数据库
mysql -uroot -ppassword databasename 子查询的本质:一条查询语句中包含另一条查询语句

通过子查询查询本公司工资最高的员工详细信息
select * from emp where sal=(select max(sal) from emp);
字符函数有
合并字符函数
mysql> select concat ('he','ll','o');
hello
mysql> select concat_ws(':','2016','05','03');
| 2016:05:03 |
mysql> select concat_ws(':','2016','null','05','03');
| 2016:null:05:03
比较函数大小 |
mysql> select strcmp('a','z');
| -1 |
判断字符长度
mysql> select length('helle world');
| 11 | 空的位置按字符来算
mysql> select char_length('中国工产党');
| 5 |

mysql> select upper('asADA')大写,lower('AAS')小写;
| 大写 | 小写 |
| ASADA | aas |
mysql> select floor(8.9)向下取值,ceil(5.6)向下取值;
| 向下取值 | 向下取值 |
| 8 | 6 |

你可能感兴趣的:(sql语句)