mysql语句基础

sql语言基础(待完善)

DDL(数据定义语言)Data Definition Language

关键字:createalterdrop 等。
用与定义数据库对象:数据库,表,列。其操作的是数据库对象。
代码示例:

  1. 展示语句
# 展示所有数据库
SHOW DATABASES ;
# 展示库名为‘otherName’的所有表,这个语句不会切换‘USE’语句所设定的当前表
SHOW TABLES FROM otherName;
# 展示当前数据库的所有表
SHOW TABLES;
# 展示创建‘sqlName’数据库时所用的语句
SHOW CREATE DATABASE sqlName ;
# 展示创建表是使用的语句
SHOW CREATE TABLE tableName ;
  1. 创建语句
# 创建一个库名为‘sqlname‘的数据库
CREATE DATABASE sqlName ;
# 创建数据库时,指定默认字符集
CREATE DATABASE sqlName DEFAULT CHARACTER SET = 'utf8';
# 在数据库内创建一个表,其中小括号里至少设置一个字段,字段后面是字段的数据类型,字符串类型(char,varchar)需要设置字符串长度,属性之间用逗号隔开。
CREATE TABLE tableName (
fieldName1 INT ,
fieldName2 VARCHAR(10) ,
fieldName3 CHAR(10) 
);
# 判断表是否存在,若若表存在则不添加,若表不存在则添加(与字段内容无关)
CREATE TABLE IF NOT EXISTS tableName(
fieldName4 INT
);
# 同时可以设置字符集
CREATE TABLE IF NOT EXISTS tableName(
fieldName4 INT
)DEFAULT CHARSET='utf8';
  1. 查询语句
# 查询数据库的版本
SELECT VERSION() ;
# 查询当前使用的数据库
SELECT DATABASE() ;
# 查看表结构(字段等信息)
DESC tableName ;

# 进入库名为‘sqlname’的数据库
USE sqlName ;
  1. 删除语句
# 删除名为‘sqlName’的数据库
DROP DATABASE sqlName ;
# 删除表
DROP TABLE tableName ;
  1. 修改语句
# 为表添加一个字段
ALTER TABLE tablename ADD fieldName4 CHAR(10) ;
# 修改表中字段的类型
ALTER TABLE tablename MODIFY fieldName4 INT ;
# 修改字段的名字和类型
ALTER TABLE tablename CHANGE fieldName4 fieldName5 INT ;
# 删除表中的字段
ALTER TABLE tablename DROP fieldName5 ;
# 修改表名
ALTER TABLE tablename RENAME newName ;
# 修改表的编码集
ALTER TABLE tableName DEFAULT CHARSET = 'utf8';

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

关键字:insertupdatedelete 等。
用于更新数据库中表的数据,包括增加、修改、删除。其操作的是数据。
代码示例:

  1. 添加语句
# 添加相应字段的对应值(单行)
INSERT INTO 
tableName (fieldName1,fieldName2,fieldName3)
VALUES('11','22','32');
# 添加相应字段的多个对应值
INSERT INTO tableName (fieldName2,fieldName3) 
VALUE('22','32'),('55','66');
# 省略字段语句添加对应值,所有字段都需要有对应的值,不添加则NULL表示
INSERT INTO tableName VALUE('11','22','32'),('44','55',NULL);
  1. 修改语句
# 修改字段的所有值为‘111’
UPDATE tableName SET fieldName1 = '111' ;
# 修改表中的某些数据当其满足WHERE条件时的
UPDATE tabaleName SET fieldName2 = '123' 
WHERE fieldName3 = '66' ;
  1. 删除语句
# 删除表中的所有数据
DELETE FROM tableName ;
# 删除表中的某些数据档其满足WHERE条件
DELETE FROM tableName WHERE fieldName1 = '123';
# 清空表,并重建
TRUNCATE TABLE tableName ;

DCL(数据控制语言)Data Control Language

用于定义数据库的访问权限和安全级别,以及创建账户。
代码示例:

DQL(数据查询语言)Data Query Language

关键字:selectfromwhere ,group by,having
用于查询数据库中表的数据。
代码示例:

  1. 一般查询
# 查询字段
SELECT fieldName1 FROM tableName ;
# 查询多个字段
SELECT fieldName1 , fieldName2 , fieldName3 FROM tableName ;
# 查询所有字段
SELECT * FROM tableName ;
# 查询时给字段起临时名
SELECT fieldName1 AS '姓名' ,fieldName2 AS '工资' FROM tableName;
# 查询时去重
SELECT DISTINCT fieldName1 FROM tabbleName;
# 对为空的值进行替换
SELECT IFNULL(fieldName2,'这个是NULL') FROM tableName ;
# 对查询结果进行字符串拼接1
SELECT CONCAT(fieldName2,'lalala',fieldName3,'biubiubiu',fieldName3) 
FROM tableName ;
# 对查询结果进行字符串拼接2
SELECT CONCAT(fieldName2,'lalala',fieldName3),CONCAT('biubiubiu',fieldName3) 
FROM tableName ;
# 对查询结果进行计算后展示(注意的是‘字符串 + 100 = 100’)
SELECT fieldName1 + 100,fieldName2 + 100 FROM tableName ;
  1. 条件查询
# 查询条件:同时满足
SELECT fieldName1 FROM tableName WHERE fieldName1 = '111' AND '2' = '2' ;
# 查询条件:满足其中之一
SELECT fieldName1 FROM tableName WHERE fieldName1 = '111' OR '1' = '2' ;
SELECT fieldName1 FROM tableName WHERE fieldName1 IN ('111','222') ;
# 查询条件:一个范围
SELECT fieldName1 FROM tableName WHERE fieldName1 BETWEEN '111' AND '222' ;
# 查询条件:不等
SELECT fieldName1 FROM tableName WHERE fieldName1 != '111' ;
SELECT fieldName1 FROM tableName WHERE fieldName1 <> '111' ;
# 查询条件:是否为NULL
SELECT fieldName1 FROM tableName WHERE fieldName3 IS NULL ;
SELECT fieldName1 FROM tableName WHERE fieldName3 IS NOT NULL ;
  1. 模糊查询
# 有一个字符
SELECT fieldName2 FROM tableName WHERE fieldName3 LIKE '_';
# 有两个字符
SELECT fieldName2 FROM tableName WHERE fieldName3 LIKE '__';
# 固定的三个字符,且以‘b’在中间
SELECT fieldName2 FROM tableName WHERE fieldName3 LIKE '_b_';
# 有零个或多个字符
SELECT fieldName2 FROM tableName WHERE fieldName3 LIKE '%';
# 以‘今’字开头
SELECT fieldName2 FROM tableName WHERE fieldName3 LIKE '今%';
# 以‘晚’字结尾
SELECT fieldName2 FROM tableName WHERE fieldName3 LIKE '%晚';
# 包含‘打老虎’这个词
SELECT fieldName2 FROM tableName WHERE fieldName3 LIKE '%打老虎%';
  1. 排序查询
# 升序 ASC 可以可以省略
SELECT fieldName1 FROM tableName ORDER BY fieldName2 ASC ;
SELECT fieldName1 FROM tableName ORDER BY fieldName2 ;
# 降序
SELECT fieldName1 FROM tableName ORDER BY fieldName2 DESC;
# 多次排序
SELECT fieldName1 FROM tableName ORDER BY fieldName2 ASC, 
fieldName1 DESC ;
  1. 聚合查询(重点)
# 展示查询结果中的最大值
SELECT MAX(*) FROM tableName ;
SELECT MAX(fieldName1) FROM tableName WHERE fieldName1 <= '1';
# 展示结果中的最小值
SELECT MIN(*) FROM tableName ;
SELECT MIN(fieldName1) FROM tableName WHERE fieldName1 >= '1';
# 展示查询结果的求和
SELECT SUM(*) FROM tableName ;
SELECT SUM(fieldName1) FROM tableName WHERE fieldName1 >= '1';
# 展示查询结果的平均值
SELECT AVG(*) FROM tableName;
SELECT AVG(fieldName1) FROM tableName WHERE fieldName1 >= '1';
# 统计查询结果的条数
SELECT COUNT(*) FROM tableName ;
SELECT COUNT(fieldName1) FROM tableName WHERE fieldName1 >= '1';
# 嵌套查询
SELECT * FROM newname WHERE fieldName1 = (SELECT MIN(fieldName1) FROM newname) ;

sql语言规范

1、sql语言可以写一行,也可以换行(就是说空格、回车和缩进都视为空格)。
2、sql语言以分号结尾,一个分号表示一个完整语句结束。
3、注释方式:# 号和 - - 号注释为单行注释,/**/ 为多行注释。
4、sql语言不区分大小写,但若是自己定义的字段名则严格区分大小写。
代码示例:

-- 单行注释
# 单行注释
/*多行
注释*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值