Mysql语句总结(1)

来源:互联网 发布:excel2013解密软件 编辑:程序博客网 时间:2024/06/03 21:09

DDL 数据库定义语言

用来定义数据库对象:库,表,列等

CREATE ALTER DROP

DML 数据库操作语言

用来定义数据库语言

insert update delate

DCL 数据库控制语言

用来定义访问权限和安全级别

DQL 数据库查询语言

用来查询记录

SELECT

注意sql语句要以 ;结尾

sql语句

1 DDL操作数据库对象:库,表,列等

关键字 CREATE ALTER DROP

1.1.1 创建

CREATE DATABASE mydb1;

创建并设置编码

CREATE DATABASE mydb2 CHARACTER SET gbk;

1.1.2 查询

SHOW DATABASES ;

1.1.3 删除

DROP DATABASE mydb2;

1.1.4修改

查看数据库 并把字符集修改为utf8

ALTER DATABASE mydb1 CHARACTER SET utf8;

1.1.5 其他

查看当前正在使用的数据库

SELECT database();

切换数据库

USE mydb1;

1.2操作数据表

创建表

语法:

creaat table 表名 (

字段1 字段类型

字段2 字段类型

字段n 字段类型

)

常用的字段类型:

int 整型

double 浮点 如double (5,2) 表示最多5位 其中最多两位小数

即 最大值999.99

char 固定长度字符串类型 如char(10) 对应值’abc

varchar 可变字符串类型 如 vaichar(10) 对应值’abc’

text 字符串类型

blob 字节类型

date 日期类型 格式yyyy-MM-dd

time 时间类型 格式:hh:mm:ss

timestamp 时间戳类型 格式 yyyy-MM-dd hh:mm:ss 会自动赋值

datatime 日期时间类型 格式 yyyy-MM-dd hh:mm:ss

CREATE TABLE student(
name VARCHAR(10),
age INT,
score DOUBLE
);

查询数据库中的表

SHOW TABLES ;

查询表中的字段信息

DESC student;

在表中增加一列

ALTER TABLE student ADD num INT;

修改num列类型为double

ALTER TABLE student MODIFY num INT;

删除num列.一次只能删除一类

ALTER TABLE student DROP num;

修改表名

RENAME TABLE student to stu;

查看表格的创建细节

SHOW CREATE TABLE stu;

修改表格的字符集

ALTER TABLE stu CHARACTER SET gbk;

修改列名

ALTER TABLE stu CHANGE name username VARCHAR(10);

删除表

DROP TABLE stu;

2,DML(重要)

对表中的数据进行增删改操作

INSERT UODATE DELATE

(查询表中的所有数据

select *from 表名;)

2.1 插入

DESC stu;
SELECT *FROM stu;

INSERT INTO 表名(列名1,列名2,列名3…)

values (列值1,….)

注意 列名与列值得类型和个数顺序要一致

若不知道内容 可插入空值 null

若要插入日期等信息 也要引号括起来

ALTER TABLE stu ADD birthday DATE;

INSERT INTO stu(username,age,score,birthday)
VALUES (‘TOM’,11,55.5,’2002-02-10’);

ALTER TABLE stu ADD birthday

#批量插入     INSERT INTO stu VALUES       ('sokeaa',11,NULL ,'1993-05-20') ,       ('bikebbc',12,50,'1993-05-20') ,       ('jarycccc',13,55.5,'1993-05-20' ) ;# 2.2  修改

语法:

update 表名 set 要做的具体修改操作 where(可选) 列名= 值;

所有的值都改为50;

UPDATE stu SET age = 50;

SELECT *FROM stu;
#将tom1 的改为100
UPDATE stu SET score = 100 WHERE username =’TOM1’ ;
SELECT *FROM stu;

将名字tom2的人分数改为99.9,年龄改为10

UPDATE stu SET score=99 WHERE username =’tom2’;
DESC stu;

将名字叫 ‘tom3’的人分数增加10分

UPDATE stu SET score= score +10 WHERE username = ‘TOM3’;
SELECT *FROM stu;

#2.3 删除

delete from 表名(where 列名 = 值);

# 删除所有数据
DELETE FROM stu;

删除所有年龄为10的

DELETE FROM stu WHERE age=10;

删除表中的记录

与delate方式的区别:

delate删除的是数据,但表中的结构还在

TRUNCATE 是直接把表删掉 在创建一个同样的表

速度快 但数据不能找回

TRUNCATE TABLE stu;

3.DQL

数据查询语言(重要)

关键字 select

语法 select 列名 from表名

(where 行条件)…

group by (对结果分组)..

having (分组后的行条件)..

order by(排序)..)

3.1 查询所有

3.1.1 查询所有

SELECT * FROM stu;

3.1.2 查询指定列

SELECT username ,age FROM stu;

3.2 条件查询

条件查询就是在查询时给出where字句 在where子句中可以使用如下运算符和关键字

:

= != <> < <= > >=

between … and

in (set)

is null is not null

and

or

not

查询年龄为50 名字为’tom1’的信息

SELECT *FROM stu WHERE age=11 AND username = ‘TOM1’;

查询年龄为55.5 或者名字为’tom1’的信息

SELECT *FROM stu WHERE score = 55.5 OR username=’TOM1’;

查询分数为55.5,99.9和158的学生的信息

SELECT *FROM stu WHERE score = 55.5 OR score = 99.9OR score = 158 ;
SELECT *FROM stu WHERE score IN (55.5,99.9,158);

查询分数不是55.5,99.9和158的信息

SELECT *FROM stu WHERE score != 55.5 AND score != 99.9AND score != 158 ;
SELECT *FROM stu WHERE score NOT IN (55.5,99.9,158);

查询分数为null的记录

SELECT * FROM stu WHERE birthday IS NULL ;

查询分数不为null的记录

SELECT *from stu WHERE score IS NOT NULL ;

查询分数在70 到90 的人

SELECT score FROM stu WHERE score>=70 AND score<=90;
SELECT score FROM stu WHERE score BETWEEN 70 AND 90;

查询年龄不是22岁的记录

SELECT *FROM stu WHERE age !=22;
SELECT *FROM stu WHERE NOT age=22;
SELECT *FROM stu WHERE age <> 22;

查询生日不为空的学生的信息

SELECT * FROM stu WHERE birthday IS NOT NULL ;

原创粉丝点击