0
点赞
收藏
分享

微信扫一扫

Mysql基本知识1

飞进科技 2022-02-23 阅读 53

目录

一、常见的SQL语句

二、SQL语句结构

1、数据查询语句(DQL:Data Query Language)

2、数据操作语言(DML:Data Manipulation Language)

3、事务处理语言(TPL):跟shell有点类似 由多条SQL语句组成的整体

4、数据控制语言(DCL)

5、数据定义语言(DDL)

6、指针控制语言(CCL)

三、Mysql数据类型

四、Mysql语句(关于库)

五、Mysql语句(关于表)

1、创建表:

2、查看表结构:

3、查看创建表的时候,执行了那些命令:

4、删除表:

5、修改表名称:

6、修改表中字段类型:

7、修改表中的字段类型和字段名称:

8、在表中添加新的字段:

9、在表中添加新的字段:

10、在age后面增加一个address字段:

11、删除表中的字段:

六、检索数据

1、检索列

2. 检索不同的行

3. 限定检索

七、排序检索数据

八、过滤数据(where语句)

1. WHERE子句操作符

2. 检查单个值

3. 空值检查

九、过滤数据(and&or语句)

1. AND表示同时满足所有条件

2. OR表示满足所有的单个条件

3. 次序计算

4. IN指定条件范围

5. NOT表在WHERE子句中用来否定后跟的条件

十、数据过滤(like子句+通配符%)

1. %表示任何字符串出现任意次数,区分大小写

2. _表示任何字符串出现单次,指一个字符,其他功能和%一样


一、常见的SQL语句

  • select 查询语句
  • insert 插入语句
  • delete 删除语句
  • update 更新语句

二、SQL语句结构

SQL结构化查询语句包含六个部分

1、数据查询语句(DQL:Data Query Language)

其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其他类型的SQL语句一起使用

2、数据操作语言(DML:Data Manipulation Language)

其语言包括动词INSERT,UPDATE和DELETE。它们分别用于添加,修改和删除表中的行。也称为动作查询语言。

3、事务处理语言(TPL):跟shell有点类似 由多条SQL语句组成的整体

它的语句能确保被DML语句影响的表的所有行及时得以更新。TPL语句包括BEGIN TRANSACTION,COMMIT和ROLLBACK

4、数据控制语言(DCL)

它的语句通过GRANT或REVOKE获得许可,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问

5、数据定义语言(DDL)

它的语句包括动词CREATE和DROP。在数据库中创建新表或删除表(CREAT TABLE 或 DROP TABLE);为表加入索引等。DDL包括许多与人数据库目录中获得数据有关的保留字。它也是动作查询的一部分

6、指针控制语言(CCL)

它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。declare [dɪˈkler] 声明 ; cursor [ˈkɜ:rsə®] 光标 ; into [ˈɪntu] 获取到

三、Mysql数据类型

 

四、Mysql语句(关于库)

  1. 查看所有的数据库:show databases();
  2. 创建数据库:create database 数据库名 ;
  3. 切换数据库:use 数据库名;
  4. 删除数据库:drop database 数据库名;删除没有提示,需谨慎
  5. 查看当前所在的数据库:select database():

五、Mysql语句(关于表)

1、创建表:

create tables 表名(字段名 类型, 字段名 类型, 字段名 类型);

例:create table student(id int,name char(40),age int(5));

2、查看表结构:

desc 表名;

例:desc student;

3、查看创建表的时候,执行了那些命令:

show create table student;

4、删除表:

单表删除:

delete from 表名 where 筛选条件;

多表删除

delete 表1的别名,表2的别名 on 连接条件 where 筛选条件;

5、修改表名称:

alter table 表名 rename 新表名;

6、修改表中字段类型:

alter table 表名 modify 要修改的字段名要修改的类型;

7、修改表中的字段类型和字段名称:

alter table 表名 change 原字段名 新字段名字段类型;

注意:Mysql不支持同时修改多个字段

8、在表中添加新的字段:

alter table 表名 add 字段名 字段类型;

9、在表中添加新的字段:

alter table 表名 add 字段名 字段类型 first;

10、在age后面增加一个address字段:

alter table 表名 add 字段名 字段类型 after 字段名(需要添加到那个字段后就写那个字段名);

11、删除表中的字段:

alter table 表名 drop 字段名;

六、检索数据

1、检索列

# 从products表中获取prod_name这一列

SELECT prod_name from products;

# 检索多个列

SELECT prod_name, prod_id, prod_price from products;

# 检索所有列

select * from products;

2. 检索不同的行

# 重复的行只显示一次

SELECT DISTINCT vend_id FROM products;

3. 限定检索

注意,行0开始数,检索5行是:0,1,2,3,4行,第6行同理从行0开始数

# 只检索5行

SELECT prod_id

FROM products LIMIT 5;

# 检索第6行开始的5行

SELECT prod_id

FROM products LIMIT 6, 5;

# 限定表名的列

SELECT products.prod_id

FROM products;

七、排序检索数据

1. 排序

# 用prod_name的字母顺序排序

SELECT prod_name

FROM products

ORDER BY prod_name;

# 先用价格排序,再用名称排序

SELECT prod_id, prod_price, prod_name

FROM products

ORDER BY prod_price, prod_name;

2. 降序

无说明默认升序,降序需要用DESC(descrease)加以说明

如果要在多个列上进行降序,需要对每个列都进行DESC说明

# 价格降序

SELECT prod_id, prod_price, prod_name

FROM products

ORDER BY prod_price DESC;

# 先对价格降序,再用产品名称排序(无说明默认升序)

SELECT prod_id, prod_price, prod_name

FROM products

ORDER BY prod_price DESC, prod_name;

3. 语法顺序

SELECT——FROM——WHERE——GROUP BY——HAVING——ORDER BY——LIMIT

八、过滤数据(where语句)

1. WHERE子句操作符

= 等于,!= 不等于,< 小于, > 大于, <= 小于等于, >= 大于等于, BETWEEN AND 在指定的两个值之间

2. 检查单个值

# 名字等于fuses

SELECT prod_id, prod_price, prod_name

FROM products

WHERE prod_mane = 'fuses';

# 价格大于10

SELECT prod_id, prod_price, prod_name

FROM products

WHERE prod_price > 10;

#供应商ID不是1003

SELECT vend_id, prod_price, prod_name

FROM products

WHERE vend_id != 1003;

# 范围值检查

SELECT vend_id,prod_name,prod_price

FROM products

WHERE prod_price BETWEEN 5 AND 10;

3. 空值检查

# NULL表示空值,no value

SELECT vend_id,prod_name,prod_price

FROM products

WHERE prod_price IS NULL;

IS NULL:如果列值为 NULL,则该运算符返回 true。

IS NOT NULL:如果列值不为NULL,则该运算符返回 true。

<=>:该运算符用于两个值的对比,当两个值都为 NULL 时(这一点与 = 运算符不同),返回 true。

包含 NULL 的条件都是比较特殊的。不能在列中使用 = NULL 或 ! = NULL 来寻找 NULL 值。这样的比对通常都是失败的,因为不可能得知这样的比对是否为真。

九、过滤数据(and&or语句)

1. AND表示同时满足所有条件

# 供应商1003,价格小于等于10的产品

SELECT vend_id, prod_name, prod_price

FROM prodcuts

WHERE vend_id = 1003 AND prod_price <= 10;

2. OR表示满足所有的单个条件

# 是1002供应商,或者是价格等于10

SELECT vend_id, prod_name, prod_price

FROM products

WHERE vend_id = 1002 OR prod_price = 10;

3. 次序计算

# MySql优先处理AND, 后处理OR,先满足vend_id = 1003 AND prod_price = 10

SELECT vend_id, prod_name, prod_price

FROM products

WHERE vend_id = 1002 OR vend_id = 1003 AND prod_price = 10;

要先处理OR,应该加()

SELECT vend_id, prod_name, prod_price

FROM products

WHERE (vend_id = 1002 OR vend_id = 1003) AND prod_price = 10;

4. IN指定条件范围

# 检索1002,1003供应商并用名称排序

SELECT vend_id, prod_name, prod_price

FROM products

WHERE vend_id IN (1002, 1003)

ORDER BY prod_name;

5. NOT表在WHERE子句中用来否定后跟的条件

NOT IN可以用来取反

# 检索不是1002,1003供应商并用名称排序

SELECT vend_id, prod_name, prod_price

FROM products

WHERE vend_id NOT IN (1002, 1003)

ORDER BY prod_name;

十、数据过滤(like子句+通配符%)

1. %表示任何字符串出现任意次数,区分大小写

# 检索以jet起头的产品名字(和JET起头不匹配)

SELECT prod_name, prod_price

FROM products

WHERE prod_name LIKE 'jet%';

# 检索产品名字中任意位置有care字符

SELECT prod_name, prod_price

FROM products

WHERE prod_name LIKE '%care%';

# 检索产品名字中以s开头e结尾的字符,长度不限

SELECT prod_name, prod_price

FROM products

WHERE prod_name LIKE 's%e';

2. _表示任何字符串出现单次,指一个字符,其他功能和%一样

举报

相关推荐

0 条评论