mysql关键字使用什么符号_mysql常用语句及关键字

一、常用sql语句

1.创建数据库

create  database test;

2.删除数据库

drop database test;

3.使用数据库

use test;

4.创建数据表

create table sys_role(

id int(4) not null primary key ,

available char(20) not null,

description char(20) not null,

role char(20) not null

)  engine=InnoDB default charset=utf8;

5.删除数据表

drop table if   exists  sys_role;

6.插入数据

insert  into  sys_role   values(1,‘0‘,‘管理员‘,‘admin‘);

7.查询数据

select * from sys_role;

8.修改数据

update sys_role  set role=‘user‘ where id=1;

9.删除数据

delete from sys_role  where id=1;

二、关键字及符号

0. Constraints :SQL 约束

约束用于限制加入表的数据的类型。

可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句)。

比如,not null,unique,primary key,foreign key,default都属于约束

可以用CONSTRAINT 命名约束。如下,命名外键约束为fk_PerOrders。

CREATE TABLE Orders

(

Id_O int NOT NULL,

OrderNo int NOT NULL,

Id_P int,

PRIMARY KEY (Id_O),

CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P)

REFERENCES Persons(Id_P)

)

1.primary key 主键

主键表示该列值在表中是唯一的,不可以有重复。

主键必须包含唯一的值。主键列不能包含 NULL 值。

每个表都应该有一个主键,并且每个表只能有一个主键。

2.auto_increment 自增

auto_increment 就是对主键自动增加编号的。

3.unsigned 无符号

unsigned是无符号的意思,代表该字段没有正负。

4.字段数据类型中,varchar和char的区别是什么?

varchar长度是可变的,能够节省空间。比如说存储"abc",CHAR(10)需要10个字符的空间来储存,而VARCHAR(10)只需要3个字符的空间。

5.FOREIGN KEY 外键约束

一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。

如下示,Id_P是Orders表的外键,也是Persons表的主键。可以用CONSTRAINT 命名约束。命名外键约束为fk_PerOrders。

CREATE TABLE Orders

(

Id_O int NOT NULL,

OrderNo int NOT NULL,

Id_P int,

PRIMARY KEY (Id_O),

CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P)

REFERENCES Persons(Id_P)

)

6. % 通配符,表示一个或多个字符

如下示,查询170开头的电话号码。

select * from phone_info  where  phoneNumber like  "170%"

7.  JOIN  用于根据两个或多个表中的列之间的关系,从这些表中查询数据。通过Inner Join  ...  On  实现。

如下示,查找Persons中Id_P和Orders表中Id_P相同的数据。

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo

FROM Persons

INNER JOIN Orders

ON Persons.Id_P = Orders.Id_P

ORDER BY Persons.LastName

各种join的区别:

JOIN: 如果表中有至少一个匹配,则返回行

INNER JOIN 与 JOIN 是相同的。

LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行

RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行

FULL JOIN: 只要其中一个表中存在匹配,就返回行

8. UNION  联表查询

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

请注意,UNION 联合的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。

同时,每条 SELECT 语句中的列的顺序必须相同。

如下示:

SELECT Employee_Name FROM Employees_China

UNION   SELECT Employee_Name FROM Employees_USA

另外,UNION和UNION ALL区别:

默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。

9.UNIQUE 约束, 使数据库表中的某一列或某几列的里面的内容不重复

10.SELECT INTO   查询并插入

SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中。

SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档。

SELECT LastName,FirstName

INTO Persons_backup

FROM Persons

11.Group By分组

将查询结果按某一列或多列的值分组

如下示:

select Cno,count(sno)

from course

group by Cno;

一张表,一旦分组完成后,查询后只能得到组相关的信息。可以通过count,sum,max,min,avg统计。

--统计分组后各种情况的数量

select  count(*),age,sex  from staff where 1=1

and create_date>=‘2018-05-07 00:00:00‘

group by age,sex

order by age asc

12.Having

对由sum()或其它集合函数运算结果的输出进行限制。如下示:

SELECT store_name, SUM(sales)

FROM Store_Information

GROUP BY store_name

HAVING SUM(sales) > 1500

13.COUNT(column_name) 函数返回指定列的值的数目

COUNT(DISTINCT column_name) 函数返回指定列的不同值的数目:

14.Case   ...  When 可以作为COUNT的条件

比如,count( CASE WHEN ERRSTR is  not null THEN 1 ELSE NULL END )表示如果ERRSTR不是空那么就计数1,用于计算ERRSTR不为空的数量

类似于编程语言中的if else。是判断语句

比如:

select    MOND_ID,INTERFACE_CODE,count(*) as REQUEST_COUNT, count( CASE WHEN ERRSTR is  not null THEN 1 ELSE NULL END ) as FAILURE_COUNT

from vbase.ESB_TRACE_20180428 where 1=1

and CREATE_DATE>=‘2018-04-28 09:00:00‘

and  CREATE_DATE

and INTERFACE_CODE=‘Svc_ProvisionRet‘

group by MOND_ID,INTERFACE_CODE

order by MOND_ID asc

四、Index 索引

索引对于操作者,仅仅提供创建、删除和修改的功能。操作者在增删改查过程中,系统会自动调用索引。

可以在表中创建索引,以便更加快速高效地查询数据。通过Create Index ... On实现。

创建一个简单的索引,名为 "PersonIndex",在 Person 表的 LastName 列,如下示:

CREATE INDEX PersonIndex

ON Person (LastName)

九、附录。 思考:

原文:https://www.cnblogs.com/expiator/p/8533956.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值