数据库1
新建库
create DATABASE a1 CHARSET utf8;
删除库
DROP DATABASE a1;
使用库
一般不这么用,使用的时候,一般就直接双击就好了,方便快捷;
USE a1;
查看库
1
查看现在所有的库名
SHOW DATABASEs;
2,查看当前使用的库
SELECT DATABASE();
3,查看创建库信息
SHOW CREATE DATABASE a1;
表操作:
创建表;
CREATE TABLE info(id int not NULL auto_increment PRIMARY KEY, NAME VARCHAR(50) not NULL, sex Char(2) NULL )
查看表:
SELECT * FROM info; #查看表 DESC info; #查看表结构 show CREATE table info; #查看表创建信息
删除表
DROP TABLE info;
添加表字段:
ALTER TABLE info add age int not NULL;
删除表字段
ALTER TABLE info drop age;
改变字段属性
ALTER TABLE info MODIFY name CHAR(23) null;
修改表字段名
ALTER table info CHANGE NAME name2 VARCHAR(45) not NULL;
添加主键
需要注意的是,添加主键的时候,表一定不能是设置成自动递增的
先去除自增
alter table info1 modify id int null , drop primary key;
ALTER TABLE info add PRIMARY KEY(id,name)
删除主键
ALTER TABLE info drop PRIMARY key;
设置默认值;
ALTER TABLE info ALTER sex SET DEFAULT '男';
删除默认值
ALTER TABLE info ALTER sex DROP DEFAULT;
修改表名
RENAME TABLE info to info1
复制表
CREATE TABLE info2 SELECT * FROM info1 ;
复制一行
:主键自增/索引/触发器/外键 不会 被复制
会复制数据
CREATE TABLE info3 SELECT * FROM info1 WHERE id=1;
复制结构
数据/触发器/外键 不会被复制
会复制主键自增
CREATE TABLE info5 SELECT * FROM info1 WHERE 1!=1;
CREATE TABLE info2 LIKE info1;
数据操作;
1增
这种增的方法是有多少字段就要添加几项
INSERT INTO info1 VALUES(2,'陈平安','男');
如果选择添加
需要注意的是此时,除了id其余的不要设置主键,和不可以为空
INSERT INTO info1(id,name) VALUES(4,'妖');
同时也可以一次性增加多个:
INSERT into info1(id,name) VALUES(8,'七娃'),(9,'六娃')
删除:
删除指定数据
DELETE FROM info1 WHERE id='0'
删除整张表中所有数据
DELETE FROM info1
清空整张表
truncate info1;
1、TRUNCATE 在各种表上无论是大的还是小的都非常快。而DELETE 操作会被表中数据量的大小影响其执行效率. 2、TRUNCATE是一个DDL语言而DELETE是DML语句,向其他所有的DDL语言一样,他将被隐式提交,不能对TRUNCATE使用ROLLBACK命令。 3、TRUNCATE不能触发触发器,DELETE会触发触发器。 4、当表被清空后表和表的索引和自增主键将重新设置成初始大小,而delete则不能。
修改
指定修改
UPDATE info1 set sex='女娃',name='小六' WHERE id=1;
查
1简单查询
查询所有
SELECT * FROM info1;
按指定字段查询
select name,sex FROM info1;
为字段起别名
select name,sex as '男' FROM info1;
可进行列表列运算
SELECT name+34 FROM info1;
去重复查询
select DISTINCT name FROM info1;
distinct后面可以同时跟着几个字段,如果跟着多个字段,意思就是,要同时满足这几个条件才能去重复
2 条件查询
运算符
SELECT * FROM info1 WHERE age>20; SELECT * FROM info1 WHERE age<20; SELECT * FROM info1 WHERE age<=20; SELECT * FROM info1 WHERE age>=20; SELECT * FROM info1 WHERE age<>20; SELECT * FROM info1 WHERE age!=20;
关键字null
SELECT * FROM info1 WHERE sex is not NULL; SELECT * FROM info1 WHERE age is NULL; SELECT * FROM info1 WHERE sex = '';
这里需要注意的是当需要输入字符串的栏里,如果是空的,那么此时应该用=而不是null
3逻辑运算,and or
SELECT * FROM info1 WHERE age=23 and sex='男'; SELECT * FROM info1 WHERE age=23 or sex='男'; SELECT * FROM info1 WHERE not (age=23 or sex='男');
4区间查询
SELECT * FROM info1 WHERE age between 18 and 20;
5 集合查询
SELECT * FROM info1 WHERE id in(1,3);
6 模糊查询
SELECT * FROM info1 WHERE name LIKE '%e%'; 包含什么 SELECT * FROM info1 WHERE name LIKE 'e%'; 以什么开头 SELECT * FROM info1 WHERE name LIKE '%e'; 以什么结尾 SELECT * FROM info1 WHERE name LIKE '__%e'; 下划线占位符
7 排序查询
SELECT * FROM info1 order by age desc;
SELECT * FROM info1 order by convert (name using gbk) desc; 中文排序
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库