数据库重要代码详细分享

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: ALTER TABLE table_name ADD COLUMN column_name datatype; #添加列ALTER TABLE table_name RENAME COLUMN old_column_name TO new_column_name;

mysql -h 127.0.0.1 -p 3306 -uroot; #连接客户端的完整命令
mysql -uroot -p #连接客户端的命令简写
show databases #查看所有的库名
\c #当你输的命令不对,又不想让客户端执行,可以用\c取消。
quit 和 exit #退出

cmd命令:
tasklist #列出当前系统中所有的进程列表(cmd命令)
tasklist |findstr mysqld # 将进程列表传递给findstr命令,并筛选出包含字符串"mysqld"的进程。findstr是用于在文本中搜索字符串的命令(cmd命令)。
taskkill /F /PID PID号 # 杀死进程(只有在管理员cmd下才能成功)(cmd命令)

sql命令:
mysqld --install #将mysql制作成系统服务
mysqld --remove #移除mysql系统服务
mysqladmin -uroot -p原密码 password 新密码 #设置新密码
mysqld --skip-grant-tables #让mysql跳过用户名和密码验证功能
update mysql.user set password=password(123456); #将所有的用户名的密码都修改为123456
update mysql.user set password=password(237230) where user= 'root' and host='localhost'; #将用户名是root,host是localhost的密码修改
flush privileges; #立刻将修改的数据刷到硬盘

针对数据库的增删改查:
增:
create database db1; #创建数据库
create database db1 charset='gbk'; #创建数据库并修改编码
查:
show create database db1; #查看单个数据库
改:
alter database db1 charset='utf8' #修改数据库编码
ALTER DATABASE current_name MODIFY NAME = new_name; #修改数据库名称
删:
drop database db1;

针对表的增删改查:
增:
use db1 #切换到库,在库里面做表的操作
create table 表名(
字段名(列名)1 类型(宽度) 约束条件1 约束条件2
字段名(列名)2 类型(宽度) 约束条件1 约束条件2,
字段名(列名)3 类型(宽度) 约束条件1 约束条件2
);

也可以用绝对路径的形式操作create table db1.t1(....);

查:
show tables; #查看当前目录下所有的表名
show create table t1; #查看单个
desc t1 #查看单个 全写:describe t1
改:
ALTER TABLE table_name ADD COLUMN column_name datatype; #添加列
ALTER TABLE table_name RENAME COLUMN old_column_name TO new_column_name; #修改列的名称
ALTER TABLE table_name ALTER COLUMN column_name TYPE new_datatype; #修改数据类型
ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT new_default_value;
参考来源:http://www.0791zd.com/sitemap.html

#修改列的默认值

删:
drop table t1;

针对数据的增删改查:
增:
insert into t1 values(1,"wff");
insert t1(column1, column2) values(1,"wff"),(2,"wjm");
查:
select * from t1 #查看所有数据
select id,name from t1 #查看指定数据(id,name)
改:
update t1 set name ='wff pro' where id > 1; #将t1里面的所有name改为wff pro 只改id>1的。
删:
delete from t1 where id > 1;
delete from t1 where name='wff';
delete from t1; #清空

show engines; # 用于显示当前数据库中可用的存储引擎列表。
create table t1(id int) engine = innodb; #创建一个名为"t1"的表,包含一个名为"id"的整数类型字段。使用innobd储存引擎。

show variables like "%mode"; #查看模式,其中的 like 是模糊匹配,%:匹配任意多个字符,_:匹配任意单个字符
修改严格模式:
set session #只在当前窗口有效
set global # 全局有效
set global sql_mode = 'STRICT_TRANS_TABLES'
select char_length(name) from t18; #char_length 统计字段的长度

创建存储时间类型的表

create table student2(
id int,
name varchar(16),
born_year year,
birth date,
study_time time,
reg_time datetime
);

存储时间

insert into student values(1,'egon','1880','1880-11-11','11:11:11','2020-11-11 11:11:11');

gender enum('male','female','others') default 'male'); #设置默认值,用在约束条件位置
id int unique; #将id字段的数据类型设置成不可重复,用在约束条件位置
unique(ip,port); # 将id和端口的组合值设置成不可重复,用在约束条件位置
create table t5(id int primary key); #将id字段设置为主键
id int primary key auto_increment; #设置自增主键

建立表与表之间的关系:
foreign key(dep_id) references dep(id) #声明关系
on update cascade # 联级更新:更新就同步更新
on delete cascade # 联级删除:删除就同步删除

select * from emp\G; #更改表的展示模式
between and #在....与....之间

group by 分组条件:
1、set global sql_mode = 'strict_trans_tables,only_full_group_by'; #开启严格模式以及分组设置。
2、select post from emp group by post; #将emp表中的数据按照post分组
按照什么分组就只能拿到分组,其他字段不能直接获取,需要借助一些方法(聚合函数):
max(最大值)
min(最小值)
sum(求和)
count(计数)
avg(平均)

as #给表取别名
where #筛选条件
having #分组之后的筛选条件,用法和where一样。

select distinct age from emp; #distinct:去重
order by #排序
select from emp order by age desc,salary asc; #先按照age降序排(desc),如果碰到age相同,则再按照salary升序排 (asc)
limit #限制展示条数
select
from emp limit 5,5; #从第五个数字的后面开始,查询5位结束。

表查询
select from enp,dep; #结果叫 笛卡尔积
select
from enp,dep where enp.dep_id = dep.id; #拼表操作
推荐写法:
inner join #内连接
left join #左连接
right join #右连接
union #全连接

select * from enp inner join dep on enp.dep_id = dep.id;

只拼接两张表中共有的数据

insert into dep(id,name) values(205,'sale');

select * from enp left join dep on enp.dep_id = dep.id;

左表所有的数据都展示出来 没有对应的项就用null

select * from enp right join dep on enp.dep_id = dep.id;

右表所有的数据都展示出来 没有对应的项就用null

左右两表所有的数据都展示出来,用法:

select from enp left join dep on enp.dep_id = dep.id
union
select
from enp right join dep on enp.dep_id = dep.id;

select post,group_concat(name,'_HAHAHA') from emp group by post; #group_concat可以支持你获取分组后的其他字段值,还可以支持拼接操作

concat不分组的时候用

concat_ws:如果多个字段之间的连接符号是相同的情况下,可以使用concat_ws来完成用法:
select concat_ws(':',name,age,sex) from emp;

delimiter $$ 将sql语句的默认结束符号改为$$
trigger #触发器

IF condition THEN
-- 当条件为真时执行的代码块
ELSE
-- 当条件为假时执行的代码块
END IF;

start transaction; #开启事务
rollback #回滚
commit #确认

create procedure #存储过程语句

set @xxx = 10; #声明变量

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
9天前
|
XML SQL 数据库
数据库视频(三)
数据库视频(三)
12 0
|
1月前
|
关系型数据库 MySQL 数据库
数据库(三)
数据完整性是数据库管理中的关键概念,确保数据的准确和一致。主要包括: 1. 实体完整性:通过主键(唯一且非空)来标识表中的每条记录,如创建`test2`表时设置`n1`为主键。 2. 创建表`test3`时,`n1`和`n2`组合成为主键,确保多字段的唯一性。 3. 唯一约束:用于保证列值的唯一性,如在`test1`中添加对`n2`的唯一约束,或创建`test4`时`n1`和`n2`的组合值唯一。 4. 引用完整性:通过外键约束实现,如`emp`表的`dept_id`引用`dept`表的`id`,确保数据间的关联合法性。外键可以有级联操作,如`on delete cascade`和`o
11 0
|
1月前
|
SQL 数据库
数据库(五)
`UPDATE` SQL语句用于修改表中的数据。基本语法是:`UPDATE 表名 SET 属性名1=新值1,属性名2=新值2 WHERE 条件表达式`。例如,更新员工工资:`UPDATE emp SET salary=5000 WHERE id=1`。可以使用`+=`操作符增加值,如`UPDATE emp SET salary=salary+500 WHERE dept_id=2`。统计查询中,`COUNT`, `MAX`, `MIN`, `AVG`, `SUM`等函数用于数值、字符和日期的统计分析,注意`WHERE`子句不能直接使用聚集函数。
14 2
|
1月前
|
数据库
数据库(二)
数据查询教程包括单表查询操作,如Select语句用于选取属性,可指定列名、使用别名、计算表达式,并通过Distinct去除重复元组。条件查询(Where子句)支持比较运算,如Between、In、Like(支持模糊匹配)及空值判断。连接查询用于合并多表数据,如内连接、外连接和笛卡尔积。例如,通过连接emp和dept表,可获取员工姓名及其所在部门名称。
12 3
|
3月前
|
存储 数据库 数据安全/隐私保护
数据库特点
数据库特点
29 9
|
10月前
|
SQL 存储 NoSQL
数据库详解
数据库详解
52 0
|
9月前
|
存储 SQL NoSQL
(一)数据库介绍
(一)数据库介绍
139 0
|
10月前
|
存储 安全 数据挖掘
数据库视频
数据库视频
76 0
|
10月前
|
存储 SQL 安全
一、如何快速掌握数据库
一、如何快速掌握数据库
89 0
|
SQL 存储 XML