做卷子的网站,黄石网站制作公司,性价比高的域名备案加急,如何修改一个网站的后台登陆系统目录
一、常用的数据类型
二、MySQ数据库基础操作
1、登录数据库
2、查看当前的 MySQL 版本信息及连接用户名
3、查看当前服务器中的数据库
4#xff0e;查看数据库中包含的表
5#xff0e;查看表的结构#xff08;字段#xff09;
6、MySQL的6大约束属性
三、SQL…目录
一、常用的数据类型
二、MySQ数据库基础操作
1、登录数据库
2、查看当前的 MySQL 版本信息及连接用户名
3、查看当前服务器中的数据库
4查看数据库中包含的表
5查看表的结构字段
6、MySQL的6大约束属性
三、SQL语句
1DDL语句管理数据库对象
1、创建新的数据库
2、创建新的表
3、 查看库或表
4、删除指定数据表慎重
5、删除指定数据库慎重
6、克隆表
7、清空表
8、创建临时表
9、外键约束
2DML语句管理数据记录
1、表中插入新数据记录
2、查询数据记录
3、修改、更新数据表中的数据记录
4、在数据表中删除指定的数据记录 3DQL语句管理表名和表结构
1、修改表名
2、扩展表结构增加字段
3修改字段列名添加唯一键
4、删除字段
5、添加主键一个表只能有一个主键
6、删除主键
4DCL语句管理用户管理 1、新建用户
2、修改用户名
3、删除用户
4、修改用户密码
5、数据库用户授权 一、常用的数据类型
int(n)整型类型。4个字节无符号[0,2^32-1]有符号[-2^31,2^31-1] ^次方tinyint(n)整型类型。1个字节范围-128~127smallint(n)整型类型。2个字节范围-32768~32767float(n,m)单精度浮点8位精度4字节32次方位。n为总个数m为小数位数如字段定义float(4,2)12.1212则存入的是12.12double(n,m)双精度浮点16精度8字节64次方位。n为总个数m为小数位数char n 固定长度的字符类型,n指定长度。 指定长度为n不管数据是几个字节都会占用n个字节的空间。多于n个字符也只占用n个字符的空间。 查询速度快删除修改不会产生碎片。 varcharn 可变长度的字符类型。varchar模式能够节约磁盘空间适合存放地址数据。 指定长度为n空数据占用1个结束符字节长度n个字符数据会占用n1个字节空间多于n个字符也是占用n1个字符空间。 节约空间但删除修改会产生碎片需要额外定时清理。 text长文本没有长度限制最多65535image图片decimal(5,2)5个有效长度数字小数点后面有2位 注意int(n)单独使用时n不起任何作用配合zerofill自动往前填充0直到满足n位数。 二、MySQ数据库基础操作
1、登录数据库
企业中很多使用navicat来管理数据库非常简单。此软件也有命令行功能以下截图均来自软件命令行工具。
#字符界面登录
[rootcentOS2 ~]# mysql -u root -pAbc123 2、查看当前的 MySQL 版本信息及连接用户名
select version();
select user(); 3、查看当前服务器中的数据库
#查看所有库
show databases; 初始状态下的MySQL会附带4个系统数据库 information_schema主要存储系统中的一些数据库对象信息如数据库名数据库的表表栏的数据类型与访问权限等mysql主要存储系统的用户权限信息performance_schema主要存储数据库服务器性能参数信息sysMySQL5.7之后引入的一个新的 sys 数据库sys 库里面的表、视图、函数以及存储过程可以让用户快速了解MySQL的一些信息它的数据来源于performance_schema 4、查看数据库中包含的表
#切换库查看表
use 库名;
show tables; #不切换库直接查看表
show tables from 库名; 5、查看表的结构字段
#切换库查看表结构describe可缩写为desc
use 库名;
describe 表名; #不切换库直接查看表结构
desc 库名.表名; 6、MySQL的6大约束属性
主键约束 primary key字段的值不能重复且不能为null一个表只能有一个主键唯一键约束 unique key字段的值不能重复但可以为null一个表可以有多个唯一键非空约束 not null字段的值不能为null默认值约束 default XXX字段的值如果没有设置值则会使用默认值自动填充自增约束 auto increment字段的值如果没有设置值会默认从开始每行自动递增1而且要求设置自增的字段必须为主键外键约束 foreiqn key用来保证外键表和主键表相关联的数据的完整性和一致性 键值对 key/value kv key名:value host:www.xy101.com 三、SQL语句 SQL语句是用于维护管理数据库包括数据查询、数据更新、访问控制、对象管理等功能。大部分的关系型数据库都采用SQL语句作为它们的管理语句所以掌握MySQL的SQL语句很容易掌握Oracle和SQL server的SQL语句。
SQL语言分类
DDL数据定义语言用于创建数据库对象如库、表、索引等DML数据操纵语言用于对表中的数据进行增删改操作管理DQL数据查询语言用于从数据表中查找符合条件的数据记录DCL数据控制语言用于设置或者更改数据库用户或角色权限 1DDL语句管理数据库对象
1、创建新的数据库
create database 数据库名;
2、创建新的表
#切换库在创建表
use 库名
create table 表名 (字段1 数据类型,字段2 数据类型[,...][,primary key (主键名)]);
主键名是表中很重要的字段可以使字段每个值不能重复且不能为空主键字段只能有一个能实现排序功能#不切换库直接创建表
create table 库名.表名 (字段1 数据类型,字段2 数据类型[,...][,primary key (主键名)]); 3、查看库或表
show databases; #查看所有库
show tables from 库名; #查看库中所有表
desc 库名.表名; #查看库中指定表的结构 4、删除指定数据表慎重
#先切换到库里再删除表
use 库名
drop table 表名; #不用切换到库直接删除表
drop table 数据库名.表名; 5、删除指定数据库慎重
drop database 库名; 6、克隆表
方法一可实现表结构和表数据与旧表都一样
create table 新表名 like 旧表名; #克隆表结构
insert into 新表名 select * from 旧表名; #克隆表数据 方法二表数据和旧表是一样的新表的结构和旧表的不一定一样
create table 新表名 (select * from 旧表名); 7、清空表
delete清空表是一条一条的删除记录清空表效率较慢AUTO_INCREMENT自增字段仍保持原有的记录
delete from 表名; truncate清空表是直接重建表清空表效率较快AUTO_INCREMENT自增字段的记录也会重置
truncate table 表名; 8、创建临时表 临时表跟一般的表的相同点是都可以进行增删改查表数据区别是show tables; 查不到临时表临时表只能再当前会话中有效退出当前会话临时表就会失效。
create temporary table 表名 (....); 9、外键约束 如果同一个字段x在表一中是主键在表二中不是主键且字段的数据类型、字符长度和约束类型设置都相同则能称字段x为表二的外键表一可称为主表或父表表二可称为外表或从表注意从表不能为临时表。 外键约束能够保证数据的完整性和一致性插入数据时需要先插入主键表的公共字段的相关数据才能在外键表插入相关联的数据删除数据时需要先保证外键表已经没有相关数据才能在主键表删除相关联的数据。
主键表创建主键约束
alter table 主表名 add primary key (公共字段);
外键表创建外键约束 alter table 从表名 add foreign key(公共字段) references 主表名(公共字段); 删除外键
alter table 表名 drop foreign key 外键别名;
删除主键
alter table 表名 drop key 键名; 2DML语句管理数据记录
1、表中插入新数据记录
方法一
insert into 表名(字段1,字段2[,...]) values (字段1的值,字段2的值,...); 方法二
insert into 表名 values (字段1的值字段2的值...); 2、查询数据记录
use 库名
方法一查看表中指定字段和值
select 字段1,字段2,字段3... from 表名;
方法二查看表中所有字段和值
select * from 表名; select 字段1字段2... from 表名 where 条件表达式; #分页查询
select 字段 from 表名 limit N; #查看表的前N行的记录
select 字段 from 表名 limit N,M; #查看表的第N行之后的连续M行的记录不包含第N行 当一个表的字段非常多显得很乱时可以用此命令单列依次查看字段数据mysql客户端才支持此命令
select * from 表名\G 3、修改、更新数据表中的数据记录
update 表名 set 字段名1字段值1[,字段名2字段值2] [where 条件表达式];
#[]表示可加可不加。如果不加where语句会默认把所有行的字段改掉 4、在数据表中删除指定的数据记录
delete from 表名 [where 条件表达式]; 3DQL语句管理表名和表结构
1、修改表名
alter table 旧表名 rename 新表名; 2、扩展表结构增加字段
#添加字段指定数据类型默认值为XX
alter table 表名 add 字段 数据类型(n) default XX; 3、修改字段列名添加唯一键
alter table 表名 change 旧列名 新列名 数据类型 [unique key];
#unique key可以给表中多个字段设置 4、删除字段
#删除表中某个字段
alter table 表名 drop 字段名; 5、添加主键一个表只能有一个主键
alter table 表名 add primary key(字段); 6、删除主键
alter table 表名 drop primary key 4DCL语句管理用户管理
1、新建用户
create user 用户名来源地址 identified by [password] 密码;
来源地址可以是 localhost、IP、网段、%代表任意地址、主机名[identified by password 密码]不加表示无密码登录不建议无密码 #rootlocalhost表示本地用户创建本地用户登录的账号和密码
create user 用户名localhost identified by 密码;
#查看用户
select user(); #了解密文方法创建root%形式的某个主机登录的用户
select user,host,authentication_string from mysql.user; #host表示登录主机authentication_string表示密文保存密码的字段。
select password(指定密码); 这一步为了生成密文密码
#密文方法创建某个主机登录的用户
create user 用户名% identified by passwd 密文;2、修改用户名
rename user 用户名来源地址 to 新用户名来源地址;
3、删除用户
drop user 用户名来源地址;
4、修改用户密码
set password for 用户名来源地址 password(密码); #只能root用户使用此命令修改
set password password (新密码); #只能修改当前用户密码
alter user 用户名来源地址 identified by 密码; #只能root用户使用此命令修改 面试题如何找回 root 密码 1修改MySQL配置文件在 [mysqld] 配置项下面添加配置 skip-grant-tables 2重启MySQL服务使用 mysql 命令即可直接登录数据库 3执行命令 update mysql.user set authentication_stringpassword(密码) where userroot; 来修改root用户密码flush privileges刷新后退出 4还原MySQL配置文件注释掉添加的配置再重启MySQL服务即可使用命令 mysql -u root -p密码 [-h 服务器地址 -P 端口] 登录数据库 5、数据库用户授权
刚创建的新用户可用权限很少默认情况下只有登录权限没有操作数据库的权限所以创建用户后需要授权。
#在5.7或之前支持 grant 创建新用户和授予权限8.0开始只能用于授予权限.all表示所有权限
grant 权限1,权限2,.... on 库名.表名 to 用户名来源地址 [identified by 密码]; all [privileges] *.*代表 任意库.任意表
#刷新生效
flush privileges; #查看用户有哪些权限
show grants for 用户名来源地址; #收回权限all表示收回所有权限
revoke 权限列表 on 库名.表名 from 用户名来源地址;
revoke all on 库名.表名 from 用户名来源地址; 实操题 创建一张名为table_fp的表格含有以下字段dm(代码)hm(号码)rq(日期)bz(标志)xfhm(销方公司号码)xfmc(销方公司名称)gfhm(购方公司号码)gfmc(购方公司名称)je(总金额)se(总税额)主键为dm和hm字段。现要求做如下操作插入数据修改数据删除数据查询数据第3-5行数据最后把一个字段的名字改了。 use mydb
create table table_fp (dm int(4) zerofill auto_increment,
hm int,
rg varchar(11) not null,
bz varchar(4) not null unique key,
xfhm int not null,
xfmc varchar(20) not null,
gfhm int not null,
gfmc varchar(20) not null,
je float(6,2),
se float(6,2),
primary key(dm,hm)); insert into table_fp (hm,rg,bz,xfhm,xfmc,gfhm,gfmc,je,se) values (125123123,2024-05-06,01,125123123,company,125123456,zhongtong,2340.5567,332.1153);insert into table_fp (hm,rg,bz,xfhm,xfmc,gfhm,gfmc,je,se) values (125121212,2024-05-09,07,125121212,company,125123456,yuantong,1111.5567,2323.11);insert into table_fp (hm,rg,bz,xfhm,xfmc,gfhm,gfmc,je,se) values (125121999,2024-06-10,03,125121999,company,125123456,yunda,5123.5,1100.19);insert into table_fp (hm,rg,bz,xfhm,xfmc,gfhm,gfmc,je,se) values (125555555,2024-06-14,05,125555555,company,125123456,debang,1058.230,80.1011);insert into table_fp (hm,rg,bz,xfhm,xfmc,gfhm,gfmc,je,se) values (125888888,2024-06-14,06,125888888,company,125123456,jitu,2098.5,200.1011);insert into table_fp (hm,rg,bz,xfhm,xfmc,gfhm,gfmc,je,se) values (125125125,2024-06-19,02,125125125,company,125123456,shunfeng,4011.22,1001.1); delete from table_fp where dm0001; select * from table_fp limit 3,5; alter table table_fp change se sumtax float(6,2);