mysql SQL语句
初学mysql,总结下mysql语法语句
1、mysql接口自带命令
1.1、\h 或 help 或 ?
1.2、\G
1.3、\T 或 tee
1.4、\c 或 CTRL+c
1.5、\s 或 status
1.6、\. 或 source
1.7、\u 或use
help contents (可详细展开)
show create database test1;可以查看建库语句和字符集
2、SQL语句种类介绍
SQL92 SQL99:
DDL
DML
DCL
DQL
3、DDL:数据定义语言
3.1 介绍:
逻辑结构:
库(库名字、库的属性)、表(表名、表的列(列名字、列属性、约束)、表其他属性、表数据)
DDL 用来定义:数据库的元数据
3.2 DDL语句——库定义
3.2.1 创建:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
[create_specification] ...
CREATE DATABASE jiaguren CHARSET utf8;
开发规范:
1、库名字,使用小写字母。
2、创建库时,一并指定字符集。
查询创建的数据库:
show databases;
show create database test;
3.2.2 删除:
drop database test;
3.2.3 修改:
alter database test1 charset utf8;
3.3 DDL语句——表定义
3.3.1 创建
create table
help create table
USE jiaguren;
CREATE TABLE student(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '学员序号',
NAME VARCHAR(20) NOT NULL COMMENT '学员姓名',
age TINYINT UNSIGNED NOT NULL COMMENT '学员年龄',
gender ENUM('m','f') NOT NULL DEFAULT 'm' COMMENT '学员性别',
ruxuedate DATETIME NOT NULL DEFAULT NOW() COMMENT '入学时间'
)ENGINE=INNODB CHARSET utf8;
查看创建的表:
SHOW TABLES;
show create table student;
desc student;
扩展:
create table stu like student;
create table stu1 select * from student;
3.3.2 删除定义
drop table stu1;
3.3.3 修改
(1)修改表名字
alter table student rename to stu;
(2)在表中添加一列telnum char(11);
alter table stu add telnum char(11);
(3)在name列后加入新列 qq varchar(20) not null unique
alter table stu add qq varchar(20) not null unique after name;
(4)在表的第一列加入新列classid int not null
alter table stu add classid int not null first;
(5)删除表中的classid列
alter table stu drop classid;
(6)修改表中telnum 列的数据类型为bigint
alter table stu change telnum telnum bigint;
(7)删除表的所有数据行
truncate table stu;
3.4 DML语句
操作表中的数据行
3.4.1 增(insert)
insert into stu values(1,'zs','12345',20,'m',now(),110);
insert into stu(name,qq,age,telnum) values('ls','23456',21,119);
insert into stu(name,qq,age,telnum) values('lss','223456',29,118),('lsss','2234516',129,1222);
select * from stu;
3.4.2 删
delete from stu;
delete from stu where name = 'lsss';
delete from stu where name like 'ls%';
3.4.3 改
update stu set age=40 where name='zs';
扩展:屏蔽delete,伪删除,使用update替代delete
alter table stu add state enum('1','0') not null default '1';
update stu set state='0' where name='lsss';
替代:
delete from stu where name='lsss';
在将来业务中:
select * from stu where state='1';
3.5 DQL:
3.5.1 数据行的查询(select)
(1) from
(3) join
(2) on
(4) where
(5) group by(开始使用select中的别名,后面的语句中都可以使用)
(6) having
(7) order by
(8) limit
-- 1、全表查询
SELECT * FROM city;
-- 2、部分数据查询
SELECT NAME ,population FROM city;
-- 3、where子句的时候--->过滤查询
--- 3.1 等值查询
SELECT * FROM city WHERE countrycode='CHN';
--- 3.2 不等值查询(> < >= <= ,<>)
SELECT * FROM city WHERE countrycode='CHN' AND population>5000000;
--- 3.3 连接符(AND,OR)
--- AND,需要保证前后条件都满足
--- OR, 只需要满足其中一个条件即可
SELECT * FROM city WHERE countrycode='CHN' OR countrycode='USA';
SELECT * FROM city WHERE countrycode IN ('CHN','USA');
---> 一般会改写为 UNION
SELECT * FROM city WHERE countrycode='CHN'
UNION
SELECT * FROM city WHERE countrycode='USA';
--- 3.4 BETWEEN AND
SELECT * FROM city WHERE population BETWEEN 1000000 AND 2000000 ;
-- 4、order by + limit
SELECT * FROM city WHERE countrycode='USA' ORDER BY population DESC;
SELECT * FROM city WHERE countrycode='USA' ORDER BY population DESC LIMIT 10; (排序后只显示前10个)
SELECT * FROM city WHERE countrycode='USA' ORDER BY population DESC LIMIT 10,10;(排序后跳过10行再显示10个,就是11-20行)
SELECT * FROM city WHERE countrycode='USA' ORDER BY population DESC LIMIT 10 OFFSET 10;(排序后跳过10行再显示10行,同上)
元数据查询
mysqlshow
show
information_schema
流年笑掷 未来可期
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)