数据库重要代码详细分享

本文涉及的产品
云数据库 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
相关文章
|
2月前
|
数据采集 Java 关系型数据库
Java代码高效连接数据库
Java代码高效连接数据库
23 2
|
2月前
|
存储 数据库 Python
用Python代码表示数据库
用Python代码表示数据库
15 0
|
5月前
|
Oracle Java 数据库连接
使用Mybatis generator自动生成代码,仅限Oracle数据库
使用Mybatis generator自动生成代码,仅限Oracle数据库
|
7月前
|
SQL Java 关系型数据库
Java的JDBC编程<-----用Java代码操作数据库(MySQL数据库)
Java的JDBC编程<-----用Java代码操作数据库(MySQL数据库)
24 0
|
8天前
|
关系型数据库 MySQL Linux
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
|
8天前
|
SQL 关系型数据库 MySQL
【MySQL-5】DDL的数据库操作:查询&创建&删除&使用(可cv代码+演示图)
【MySQL-5】DDL的数据库操作:查询&创建&删除&使用(可cv代码+演示图)
|
9天前
|
Java 关系型数据库 测试技术
Java代码一键生成数据库文档(案例详解)
Screw是一个自动化数据库文档生成工具,能根据数据库表结构快速生成简洁、多格式(HTML、Word、Markdown)的文档,支持MySQL、MariaDB等多数据库。它使用Freemarker模板,允许用户自定义样式。依赖包括HikariCP数据库连接池和对应JDBC驱动。通过在Java代码或Maven插件中配置,可方便生成文档。示例代码展示了如何在测试用例中使用Screw。文档效果依赖于数据库中的表和字段注释。
|
2月前
|
SQL Oracle 关系型数据库
干货!sqlserver数据库所有知识点总结整理,含代码(挺全的)
干货!sqlserver数据库所有知识点总结整理,含代码(挺全的)
13 0
|
2月前
|
存储 前端开发 安全
酒店客房管理系统设计与实现(代码+数据库+文档)
酒店客房管理系统设计与实现(代码+数据库+文档)
|
2月前
|
存储 JavaScript 前端开发
基于SpringBoot的医护人员排班系统(代码+数据库+文档)
基于SpringBoot的医护人员排班系统(代码+数据库+文档)