正能量不良网站直接进入,宁夏网站建设费用地址,揭阳高端网站建设价格,今天新闻最新消息数据库是企业的重要信息资产#xff0c;在使用数据库时#xff0c;要注意(查和增,无所谓,但是删和改,要谨慎! ) 数据库管理系统(DBMS) :实现对数据的有效组织#xff0c;管理和存取的系统软件 mysgl 数据库是一个系统#xff0c; 是一个人机系统#xff0c;硬件, gs,数据库… 数据库是企业的重要信息资产在使用数据库时要注意(查和增,无所谓,但是删和改,要谨慎! ) 数据库管理系统(DBMS) :实现对数据的有效组织管理和存取的系统软件 mysgl 数据库是一个系统 是一个人机系统硬件, gs,数据库, DBMS和数据库的用户共同组成。 用户是通过DBMS(各种数据库软件)来对数据库进行操作。 数据库的分类: mysgl: 关系型数据库。 redis: 非关系型数据库 Es 索引型数据库 关系型数据库:存储数据的结构是一个二 维表格 表:行列 行:记录用来描述一个对象信息 列:字段用来描述对象的一个属性。 关系型数据库: mysgl(中小类型的数据并发请求) oracle大型数据 多表关联最多可以关联几张表3张表 非关系型数据库redis保存的不是一张表格Key---value键值对来保存数据ky3212 缓存的是数据库 MySQL的存储引擎: 版本5.5之前默认引擎是MYISAM,不支持事务和外键的存储引擎适用读 写 5.6之后默认的存储引擎是innodb,可以支持事务外键行基锁定的存储引擎支持高并发行性能的应用 事务:在数据库当中一个或者多个操作组成的数据操作的序列。 这些操作要么全部成功失败一个就全部不执行。确保数据一致性和完整性。 数据库是企业的重要信息资产在使用数据库时要注意(查和增,无所谓,但是删和改,要谨慎! ) 数据库管理系统(DBMS) :实现对数据的有效组织管理和存取的系统软件 事务的特点 最小单位原子性是数据库最小工作单元要么全部执行成功要么全部不执行只要有一个操作时间整个执行的序列都会被回滚完成的操作也会被撤销 一致性: 事务执行前后数据库的完整性约束不能被破坏。只有在满足所有的约束条件情况下事务才能被提交。 隔离性: 事务的执行是相互隔离。一个事物的执行不能受到其他执行事务的干扰。并发事务之间互相隔离。防止数据不一致的情况发生。 持久性 事务一旦提交他所做的所有修改都会保存在数据库中即使系统崩溃数据也不丢失 特点总结:确保数库始终处于一致性的状态数据的完整性 Mysql 的名词 1、数据库: database 2、表: table 行: row 列: column 3 索引: index 4视图: view 5存储过程: procedure 6存储函数function 7触发器: trigger 8用户: user 9权限: privilege mysgl的语句的规范: 在数据库系统中sgl不区分大小写,但是建议大写。语句不区分但是表名是严格区分大小写。 sgl语句可以单行也可以多行书写但是默认都以;结尾。 关键词不能跨行或者简写。 子语句通常位于度路航便于编辑提高可读性。 数据库的命名规则: 必须以字母开头后面可以包含数据,特殊字符: #_ $ 不要使用mysgl的保留字: table select 数据库名 表名 用户名严格区分大小写 数据库的字符类型 Int : 4个字节用来存储整数 Char: 固定长度的字符串用来存储固定长度的字符串 Varchar: 可变长度的字符类型存储可变长度的字符串根据类型的长度写 Float(m,d) : 单精度浮点。存储浮点数m表示总位数d表示小数位 double(m,d): 双精度浮点数存储浮点数M也是总位数 d,表示小数位。 text: 用于存储大文本数据文档或者长字符串。 image: 二进制存储图像图片,多媒体。 Decimal (5,2): 用于存储固定精度的浮点数数其中5表示总位数2表示小数位 Data: 存储日期yyyy-mm-dd Datatime: 存储日志 yyyy-mm-dd hh:mm:ss Timestamp:和datetime格式一致可以自动的更新为当前的时间戳 Char无论是否定义了值都会占用固定长度的字节大小 varchar保存时长度是14 实际长度是5就占用5个加一个隐藏符算6个 都是字符串一定要用单引号引起来 varchar比char节省磁盘空间 但是varchaer读写速度比char慢 sql语句的分类 DDL :数据定义语言用于创建数据的对象创建库 表 索引 CREATE创建 DROP删除库 和表 ALTER修改 DML数据操作语言对表中的数据进行管理 Select Update 更新修改数据 Insert 添加 Delete 删除对表进行的操作 DQL语言查询数据库语言 Select DCL: 数据控制语言设置或者更改数据库用户或者用户的权限 GRANT 赋予权限 REVOKE 取消权限 TCL事务控制语句管理数据库当中的事务 Commit 确实提交事务 ROLLBACK:事务提交之后无法回滚 Savepoint 保存点可以回滚 #查看当前数据库的端口 #查看表的结构 #查询数据库 #使用mysql数据库 #查看当前数据库下有哪些表呢 #查看表的结构 #纵向查看表的结构 #新建数据库 #删除数据库 #创建表Ky32 以下几个列id 是整数型4位 指定属性不能为空名字指定长度10属性不能为空分数指定小数5位小数点后2位密码长度48位设定主键为id 不能为空和不能重复 create table ky32 (id int(4) not null, name varchar(10) not null, sroce decimal(5,2), passwd char(48), primary key(id)); Nul和空格的区别 null什么都没有没有任何的内容描述 #desc 查看表的结构 #插入到Ky32韩文升密码为空添加字符串是要引起来 #详细查询表的结构 #清空表名 #插入到ky32 分数 姓名 密码 #插入数据韩文升 分数 密码456对列 #加密处理 #update指定行列的数据进行修改 where指定唯一值防止重复 #delete删除表信息指定id 删除 #查询 指定id 进行查询 #查询第4行到7行加一行 #查询前2行 只跟一个数字表示前几行 #第二行开始走4个 #指定分数查询 #去重查询 #去重多条件查询 .#多条件查询 #修改表的名称 #添加表32 生日一列 #更新生日 #修改删除生日这列 #修改数据的库的类型 Alter table ky32 modify 扩展语句
##复制通过Like语法直接复制ky11的表结构不能复制表里的数据 create table test like ky11; ##把ky32 表里面的数据复制到test里面两个表的数据结构要一致 insert into test select * from ky32; ###创建一张表test2 的数据从ky32来表结构也是y32 create table test2 (select * from ky32); 推荐工作中清表用 truncate test1; 清空表的数据而且会把表的结构重新建立速度比delete 快 语句解释 if not exists ky32 -----这个表的不存在才会创建 zerofill ---- 自动填充补齐位置 primary key -----当前表的主键主键只能有一个唯一不能为空 auto_increment -----表示该字段可以自增长默认从1开始每条记录会自动递增1 unique key:---- 唯一个 不能重复可以为空 default 地址不详 ---- 默认值如果不写默认为地址不详 MYSQL的6种常见的约束方式 1 主键约束用于唯一标识表中的每一行主键列的值必须是唯一而且不能为空一个表只能有一个 2 外键约束用于表与表之间的关系一般是和另一张表的主键关联保证数据引用的完整性一个表可以有多个外键 3 非空约束 Not NULL 必须要有有一个值. 4 唯一约束性unique 确保列中的所有值都是唯一的类似于主键可以为空而且一个表可以有多个唯一约束 5 默认约束 default 在插入表数据时如果没有定义值会提供一个默认值 6 自增约束 每行自动生成一个标识通常和主键一起使用 MySQL主键和外键在关系数据库中起着非常重要的作用。主键是一种用于唯一标识表中每一行数据的列它可以确保表中的每一行数据都有一个唯一的标识符。而外键则是一种用于建立表与表之间关联的列它可以确保数据的一致性和完整性。
在MySQL中我们可以通过使用CREATE TABLE语句来创建表并在其中定义主键和外键。例如我们可以使用以下语句来创建一个包含主键和外键的表
CREATE TABLE orders (
order_id INT PRIMARY KEY,
customer_id INT,
order_date DATE, FOREIGN KEY (customer_id) REFERENCES customers(customer_id) );
在上面的例子中我们创建了一个名为orders的表其中包含一个名为order_id的主键列和一个名为customer_id的外键列。外键列引用了另一个名为customers的表中的customer_id列以建立orders表和customers表之间的关联。
总之MySQL主键和外键是关系数据库中非常重要的概念它们可以帮助我们建立表与表之间的关联并确保数据的一致性和完整性。12 ##也可以通过修改的方式添加外键 主表和从表
插入数据 先插入主表再插入从表
删除数据 先删除主表数据在删除从表 #先的desc 表的结构 ##先删除表class的外键 alter table class drop FORIGN key class_ibfk_1; ##再删除索引 alter table class drop index card_id ##先更改类型再删除主键 alter table class modify stud_id int(12); alter table class drop primary key; 表一
create table school (
de_id int(4) zerofill primary key auto_increment,
name VARCHAR(15) not null,
email varchar(45) not null UNIQUE,
money int(12) not null UNIQUE
);
表二
create table cloud_ky32 (
id int(5) not null primary key auto_increment,
class_name varchar(15) not null,
de_id int(4) zerofill,
address varchar(50) default 地址不详,
phone int(11) not null unique,
foreign key(de_id) references school(de_id)
); 加密创建用户 select password(密码); 复制运行的结果 #内容输入到下方密码区域 create user ‘ky2’20.0.0.30 identified by *6691484EA6B50DDDE1926A220DA01FA9E575C18A; create user ky2localhost identified by *6691484EA6B50DDDE1926A220DA01FA9E575C18A; create user----创建用户
ky2-------------表示用户
localhost------表示新建的用户可以在哪些主机上登录网段IP主机名等
ky2’%------表示任意端 grant 赋权 grant all privileges on *.* to Ky2localhost identified by 123456; grant ----赋权
all pricvileges ----- 所有权限
on kgc.*-----对指定的库进行赋权
to ky2localhost----赋权给某个用户
identified by 123456 使用这个密码登录创建用户时不写密码为空 ##使用 mysql -h 20.0.0.10 -u test -p 命令登录 #f赋予查的权限 grant select on kgc.* to test20.0.0.10 IDENTIFIED by 123456; #如何给一个用户赋权 多个权限 grant select,drop,insert on kgc.* to test‘20.0.0.10’ IDENTIFIED by 123456; revoke权限
#删除用户的权限 revoke all privileges on kgc.* from test120.0.0.10; #查询权限 show grants for test20.0.0.10; #刷新权限 flush privileges; ##如何移除权限 revoke drop on kgc.* from test120.0.0.10 ; ##如何删除所有权限 revoke all on kgc.* from ‘test1’‘20.0.0.10’ 其他用户设置
#用户重命名 rename user test120.0.0.10 to guoqi20.0.0.10; #删除用户 drop user ky33locahost; #修改当前登录用户的密码 set password password(abc123); #修改其他用户的密码 set password for han20.0.0.10 password(abc123); #如何找回密码 修改mysql 的配置文件 设置免密登录 重启 不用输密码 直接登录 查询用户信息 密码在这里面 #设置密码修改 #在去掉免密登录后可以密码登录