MYSQL语法学习笔记

1.创建逻辑库
  • 创建逻辑库
    CREATE DATABASE 逻辑库名称;
  • 显示所有的逻辑库名称
    SHOW DATABASES;
  • 删除指定逻辑库
    DROP DATABASE 逻辑库名称;
2.创建数据表

CREATE TABLE 数据表 (
列名1 数据类型 [约束] [COMMENT 注释],
列名1 数据类型 [约束] [COMMENT 注释],

) [COMMENT 注释];

//示例
CREATE TABLE student(
	id INT UNSIGNED PRIMARY KEY,
	name VARCHAR(20) NOT NULL,
	sex CHAR(1) NOT NULL,
	birthday DATE NOT NULL,
	tel CHAR(11) NOT NULL,
	remark VARCHAR(200)
	);
3.操作数据表
  • 插入语句
INSERT INTO student VALUES (1,"张三","男","2021-10-1","15905032806","法外狂徒张三");
  • 添加字段
    格式: ALTER TABLE 表名称
      ADD 列1 数据类型 [约束] [COMMENT 注释],
      ADD 列1 数据类型 [约束] [COMMENT 注释],
      …;
ALTER TABLE student
ADD address VARCHAR(200) NOT NULL,
ADD home_tel CHAR(11) NOT NULL;
  • 删除字段
    格式: ALTER TABLE 表名称
      DROP列1,
      DROP 列1,
      …;
ALTER TABLE student
DROP home_tel,
DROP home_address;
  • 修改字段类型和约束
    格式: ALTER TABLE 表名称
      MODIFY列1 数据类型 [约束] [COMMENT 注释],
      MODIFY列1 数据类型 [约束] [COMMENT 注释],
      …;
ALTER TABLE student
MODIFY home_tel VARCHAR(20) NOT NULL;
  • 修改字段名称
    格式: ALTER TABLE 表名称
      CHANGE列1 新列名1 数据类型 [约束] [COMMENT 注释],
      CHANGE列1 新列名1 数据类型 [约束] [COMMENT 注释],
      …;
ALTER TABLE student
CHANGE address home_address VARCHAR(200) NOT NULL;
  • 添加 删除索引
    添加索引
    CREATE INDEX 索引名称 ON 表名(字段);
    ALTER TABLE 表名 ADD INDEX [索引名(字段)];

    查询某张表设置了哪些索引
    SHOW INDEX FROM 表名;
    删除某列索引
    DROP INDEX 索引名称 ON 表名;

//添加
CREATE INDEX idx_type ON t_message(type);
ALTER TABLE t_message ADD INDEX idx_type(type);
//显示
SHOW INDEX FROM t_message;
//删除
DROP INDEX idx_type ON t_message;

  • 数据表其他操作
//查询当前逻辑空间数据表名字
SHOW tables; 
//查询表格具体情况 
DESC student;
//查询某张表 建表语句
SHOW CREATE TABLE student;
//删除表格
DROP TABLE student;
4.数据类型
  • Number
类型大小范围(SIGNED/UNSIGNED)说明
TINYINT1 字节-128~127 / 0~255小整数
SMALLINT2 字节-32768~32767 / 0~65535普通整数
MEDIUMINT3 字节-8388608~8388607 / 0~16777215普通整数
INT4 字节-2147483648~2147483647 / 0~4294967295较大整数
BIGINT8 字节-9223372036854775808~9223372036854775807 / 0~18446744073709551615大整数
FLOAT4 字节-单精度浮点数
DOUBLE8 字节-单精度浮点数
DECIMAL--------作为字符串存储的 DOUBLE 类型DECIMAL(10,2)
  • TEXT
类型大小说明
CHAR1-255字符固定长度字符串
VARCHAR1-65535字符不固定长度字符串
TEXT1-65535字符不确定长度字符串
MEDIUMTEXT1-16,777,215字符不确定长度字符串
LONGTEXT1- 4,294,967,295字符不确定长度字符串
  • DATE
类型大小说明
DATE3字节日期 格式:YYYY-MM-DD
注释:支持的范围是从 ‘1000-01-01’ 到 ‘999912-31’
TIME3字节时间 格式:HH:MM:SS
注释:支持的范围是从 ‘-838:59:59’ 到 ‘838:59:59’
YEAR1字节2 位或 4 位格式的年
注释:4 位格式所允许的值:1901 到 2155。2 位格式所允许的值:70 到 69,表示从 1970 到 2069。
DATETIME8字节*日期和时间的组合 格式:YYYY-MM-DD HH:MM:SS
注释:支持的范围是从 ‘1000-01-01 00:00:00’ 到 ‘9999-12-31 23:59:59’
TIMESTAMP4字节时间戳。TIMESTAMP 值使用 Unix 纪元(‘1970-01-01 00:00:00’ UTC) 至今的秒数来存储。格式:YYYY-MM-DD HH:MM:SS
注释:支持的范围是从 ‘1970-01-01 00:00:01’ UTC 到 ‘2038-01-09 03:14:07’ UTC
5.数据库操作语言
5.1数据库基本查询
  • 基本查询语句是有SELECTFROM关键字组成
// * 返回所有字段
SELECT * FROM t_message;
//返回指定字段
SELECT context,type FROM t_message;
  • 分页查询
    SELECT…FROM… LIMIT 起始位置,偏移量;
SELECT * FROM t_message LIMIT 0,5;
  • 排序查询
    SELECT … FROM … ORDER BY 列名[ASC|DESC];
    ASC:  升序(默认)
    DESC: 降序
    如果排列字段相同,默认按住键排序
SELECT * FROM t_message ORDER BY salary DESC;
  • 去除重复记录
    SELECT DISTINCT 字段 FROM 表名
    只能查询一个字段,多个字段不生效.
SELECT DISTINCT job FROM t_message;
job
android
java
c++
kotlin
5.2数据库条件查询

查询一种或几种条件的记录,使用WHERE字句来筛选.
SELECT…FROM…WHERE 条件[AND|OR] 条件...;

SELECT * FROM t_message WHERE job="android" AND salary>20;

id  content type create_time           salary job     
1	测试	    通报	 2021-12-10 16:27:55	200	  android
3	李四	    通报	 2021-12-18 10:23:32	900	  android

SELECT * FROM t_message WHERE content REGEXP "[a-zA-Z]";

id  content type create_time           salary   job 
8	momo	公告	 2022-01-09 14:01:16	1800	kotlin

比较运算

表达式意义例子
IS NULL为空comm IS NULL
IS NOT NULL不为空comm IS NOT NULL
BETWEEEN AND范围salary BETWEEN 100 AND 900
LIKE模糊查询ename LIKE"A%"
REGEXP正则表达式ename REGEXP “a-zA-Z{4}”
5.3聚合函数

聚合函数可以对数据求和,求最大值最小值,求平均值等.

1)AVG() 平均值

统计非空值的平均值,非数字类型统计结果为0

SELECT AVG(salary) From t_message;

AVG(salary)
1014.2857
2)SUM() 求和

SUM()只能用于数字类型,字符类型的统计结果为0,日期类型统计毫秒值相加

SELECT SUM(salary) FROM t_message;

SUM(salary)
7100
3)MAX() 最大值 - MIN()最小值
SELECT MAX(salary) From t_message WHERE job="Android";

MAX(salary)
1500

SELECT MAX(salary) From t_message WHERE job="Android" AND salary IN(200,900);

MAX(salary)
900
4)COUNT()

COUNT(*)用于包含空值的记录数,COUNT(列名)用于获得包含非空值记录

SELECT COUNT(*),COUNT(job) FROM t_message;

COUNT(*)   COUNT(job)
    7         7
5.4分组查询
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值