Mysql数据库学习及总结
前⾔
本⼈是⼀名测试⼯程师,不管是对于数据分析师、开发⼯程师、测试⼯程师,数据库操作都是最基础也是最重要的⼀门技术,这篇⽂章就是本⼈在学习及⼯作过程对Mysql数据库的总结。
⼀、基础概念
1、数据库:是存储在计算机内的、有组织的、可共享的统⼀管理相关数据的集合,由表、关系、操作对象组成。
2、事务的特征:原⼦性,⼀致性,隔离性,持久性。
3、数据库管理系统:是⼀种操纵和管理数据库的⼤型软件,⽤来创建、使⽤、维护数据库。DDL:数据定义语⾔,DML:数据操纵语
⾔,DCL:数据控制语⾔。
4、Mysql数据库特点:性能⾼效、跨平台、⽀持多⽤户、免费开源、使⽤简单。必需微量元素
5、主键:是唯⼀能标识某个表的记录的⽆具体业务含义的字段,像⾝份照、卡号、⼿机号、邮箱等都可以作为主键使⽤。特点:a.主键的字段具备唯⼀性;b.主键的字段不能为空;c.主键⾃带索引;d.可以多个字段组成主键;e.⼀个表仅⼀个主键。
6、外键:⽤于在两个表之间建⽴关系,需要指定引⽤主表的哪⼀列。如果表A的主键是表B中的字段,则该字段称为表B的外键,表A(主表),表B(从表)。外键是⽤来实现参照完整性的,主表更新时从表也更新,主表删除时如果从表有匹配的项,删除失败。
7、索引:是⼀种单独的、物理的对数据库表中⼀列或多列的值进⾏排序的⼀种存储结构。优点:使⽤索引能加快数据的查询速度,缺点:索引会占⽤内存、磁盘空间,会增加数据库管理系统的维护成本。
8、视图:⼀个虚表,⾥⾯不保存任何数据,视图的数据来源于创建视图时的基表。作⽤:简化操作、能把复杂的sql简化,B.避免数据冗余,C.提⾼数据安全性,D.提⾼数据逻辑独⽴性。
⼆、Mysql数据类型
Mysql数据类型:⽇期类型:date /time /datetime/timestamp,字符串类型:char/varchar/text,浮点型:decimal/float/double,整型:tinyint/smallint/mediumint/int/bigint。
Mysql中除了字符串类型需要设置长度,其他类型都有默认长度。
三、数据控制语⾔DCL
1、系统操作
根据进程名查端⼝:1.tasklist|findstr mysql 2stat -ano|findstr pid 根据端⼝查进程:1stat -ano|findstr port 2.tasklist |findstr pid
启动mysql服务:net start mysql
停⽌mysql服务:net stop mysql
访问mysql:mysql -h localhost -P 3306 -u root -p 密码
mysql语句分类查参数:show variables;
设置参数:set 参数名称=’值’;
查当前存储引擎:show engines ;
修改当前存储引擎:set default_storage_engine=innodb;
查状态:SHOW STATUS;
查询版本:SELECT VERSION();
2、⽤户权限
创建⽤户:create user `test`@`localhost` identified by ‘123456’;修改密码:alter user `test`@`localhost` identified by ‘123456’; 删除⽤户:drop user `test`@`localhost` ;
刷新⽤户:flush privileges;
授予权限:grant all on *.* to `test`@`localhost` ;
库里宣布新决定
撤销权限:revoke all on *.* from `test`@`localhost` ;
查询当前⽤户:select USER();
查看⽤户的权限:show grants for Fox@localhost;
查询数据库所有的⽤户:SELECT * FROM mysql.user;
四、数据定义语⾔DDL
1、建库
查所有的库:show databases;
查当前库:select database();
修改数据库:ALTER DATABASE mybase CHARACTER SET UTF8;
创建数据库:create database 数据库名 character set utf8;
查建库语句:show create database 数据库名;
删库:drop database 数据库名;
切换数据库:USE mybase;
2、建表
查所有的表:show tables;
创建表:create table exam(
id INT(11) PRIMARY KEY AUTO_INCREMENT, -- 主键⾃动递增
name VARCHAR(20) DEFAULT NULL, -- 默认为空
English INT,
sal DOUBLE(7,2), --整数位7,⼩数位2
Math int NOT NULL --⾮空
);
添加主键:alter table stu2 add PRIMARY key (id,`name`); --指定id name⼀起作为主键
添加默认值:alter table stu2 alter COLUMN `gender` set DEFAULT 'm';
添加唯⼀约束和⾮空约束:ALTER TABLE exam MODIFY NAME VARCHAR(21) UNIQUE NOT NULL;
查表结构:desc 表名
abap开发技术查建表语句:show create table 表名;
删表:drop table 表名;
修改表名称:RENAME TABLE exam TO score;
修改表的字符集:ALTER TABLE score CHARACTER SET GBK;
create table stu4 like stu3; -- 完全复制表结构,除了数据
SHOW GLOBAL VARIABLES LIKE 'innodb_force_primary_key'; -- 查看是否开启强制主键
SET GLOBAL innodb_force_primary_key=off; -- 关闭强制主键
mysql8以后默认开启强制主键约束,得关闭强制主键才能使⽤下列语句。ps:⼀般公司都不允许关闭强制主键。create table stu5 as select * from stu3;-- 复制表中所有数据到新表,除了主键⽆法复制
create table stu6 as select id,name from stu3;--复制原表部分字段到新表,除了主键
create table stu7 as select * from stu3 where 1=0;--复制原表的表结构到新表,除了主键
3、建索引iframe默认页面
建表时创建:
create table book(
isbn varchar(50) not null,
bookname varchar(100) not null,
price decimal(8,2),
author varchar(50),
publishhouse varchar(50),
summary text,
PRIMARY key `pk_isbn`(`isbn`), -- 主键索引
UNIQUE index `idx_bookname`(`bookname`), -- 唯⼀索引
index `idx_author`(`author`), -- 普通索引
FULLTEXT index `ft_summary`(`summary`) -- 全⽂索引
);
create语句:
create index `idx_author` on `book`(`author`); -- 普通索引
create UNIQUE index `idx_bookname` on `book`(`bookname`); -- 唯⼀索引
create FULLTEXT index `ft_summary` on `book`(`summary`); -- 全⽂索引
alter table 语句:
alter table book add index `idx_author`(`author`); -- 普通索引
alter table book add UNIQUE index `idx_bookname`(`bookname`); -- 唯⼀索引
alter table book add FULLTEXT index `ft_summary`(`summary`); -- 全⽂索引
删除索引:
drop index 索引名 on 表名;
查看索引:
SHOW INDEX FROM 表名;
4、建视图
create view 视图名(字段列表) as select 字段列表 from ......
CREATE VIEW v_studentCourseScore (
studentno, NAME, coursename, score) AS SELECT
a.sid, a.`name`,
bame,
c.number
FROM student a, course b, score c
WHERE a.sid = c.sid AND b.cid = c.corse_id;
删除视图:
drop view 视图名;
5、修改表字段
添加字段:alter table stu2 add major VARCHAR(20);
修改数据类型:alter table stu2 MODIFY major char(20);
修改字段名称:alter table stu2 change major professional char(20);
哪个网站免费ppt模板好删除字段:alter table stu2 drop professional;
五、数据操纵语⾔DML
1、插⼊数据
Insert into:直接插⼊数据
插⼊⼀条全部字段值:insert into stu2 values(1,'zhangsan','m',20);
插⼊⼀条部分字段值:insert into stu2(id,name) values(3,'wangwu');
⼀次性插⼊多条数据:insert into stu2(id,name) values(5,'zhao7'),(6,'zhao8'),(7,'zhao9');
查询某个表的结果插⼊:insert into stu3(id,name,gender,age) select id,name,gender,age from stu2;
Replace into:先检查是否存在,存在则更新,不存在则插⼊。
Replace into 表名(字段列表) values(值列表)
Replace into 表名(字段列表) select 字段列表 from 表 [where 约束条件]
Replace into 表名 set 字段=值,字段=值
2、更新数据
update 表名 set 字段=值,字段=值 where 约束条件; --更新符合条件的⾏
update 表名 set 字段=值,字段=值; --更新所有⾏
3、删除数据
delete from 表名 where 约束条件; --删除满⾜条件的记录,数据可以回滚
delete from 表名; --删除全部记录,数据可以回滚
truncate table 表名; --清空表,数据⽆法回滚。
六、数据查询语⾔DQL
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论