MySql数据库
概念:存放数据的仓库,就是数据库。 特点:持久化存储。本质就是一个文件系统。
按特定格式(数据存储在一张张表中,就形成了特定的形式)进行存储,用户可对数据进行增删改查
数据库管理系统(DBMS,database management system)
是一种用来管理维护、维护、建立数据库的软件。数据存在于数据库中。但是用户需要用DBMS来管理数据。
数据库命令
show databases;显示数据
在cmd中
mysql -uroot -h10.10.34.114 -p000000远程登录 -h表示host后接IP地址
SQL语句
structed query language结构化的查询语言
- DDL数据库定义语言create、alter、drop
- DML数据库操作语言insert、delete、update
- DCL数据库控制语言。用来定义数据库的访问权限和安全级别,以及创建用户
- DQL数据库查询语言select,where,from、group by
书写规范
- 可单行,可多行书写,以分号;结尾
- 可以使用空格缩进来增强代码可读性
- 语句对大小写不敏感,但是==自定义内容应区分大小写==
- 注释多行 /**/ 单行注释 # --
- SQLyog中语句默认大写,自定义字符小写。执行SQL语句,快捷键F9
DDL
关于数据库的操作:
- show databases;显示数据库
- create database 名字;创建数据库
- select version();查看数据库版本号
- use 数据库名;切换使用数据库
- show tables;查看数据库中所有的表
- show tables from 数据库名;查看其他数据库的表
- select database();查看正在使用的数据库
- show create database 数据库;查看数据部的建表语句
- create database db2 default charset gbk;在创建数据库时指定数据库的编码集为gbk
- drop database db2;删除数据库
关于表的操作:
-
create table 表名(
字段名1 字段类型 约束,
字段名2 字段类型 约束 ,
……
字段名n 字段类型 约束 //最后一个不需要加逗号
);创建表
-
创建表之前先检查是否存在,不存在才创建
create table if not exists name(
……
);
查看标的结构,就是表的字段以及类型和约束等 desc 表名;
查看建表语句 show create table 表名;
删除表 drop table 表名;
-
添加一个字段,实际上就是修改了表的结构,所以用alter
alter table 表名 add 字段 字段类型 约束;
-
修改现有字段的字段类型/约束
alter table 表名 modify 新的字段类型 新约束;
-
修改现有字段的名称
alter table 表名 change 旧列名 新列名 字段类型;
-
删除现有字段
alter table 表名 drop 列名;
-
修改表的名称
rename table 旧名称 to 新名称;
(只可以修改标的名称,不可以修改数据库名称)
-
修改表编码集
alter table 表名 charset gbk;
SQL常用数据类型
整数 int
字符 varchar(字符长度)
小数double
日期date
DML 数据操作语言
对数据库中的表进行操作,可对表数据的增加、删除、修改
-
在表中插入数据
insert into 表名 (字段) value==s==(字段值);
注意事项:1.传值时,传入的值得顺序要和字段的顺序一致
2.传值时,传入数据类型要和字段定义一致
3.传值时,除了数值类型以外,其他类型都要用引号“”包裹。
4.传空值时,可以不写该字段。或者给字段传入null
5.插入一条数据用values,插入多条用value
一次传入多条数据insert into 表名(字段)value(字段值),(字段值),(字段值);
-
修改表中数据
updata 表名 set 字段=’新值‘ where 约束 or 约束;
如果不加约束,则整列都会被修改
-
删除数据
删除一条记录 delete from 表名 where 约束;
删除多条记录 deleter from 表名 where 约束 or 约束;
不加约束则删除表中所有数据
-
删除数据方法2
truncate table 表名; 删除所有数据
与delete区别:delete删除数据时,逐条删除。truncate直接删除整个表,相当于drop table,然后新建一个空表。如果数据量大,则truncate速率较高。
DQL数据库查询语言
- 从数据库中的表查找记录
select 字段 from 表名
select * from 表名 查找所有字段
select * from 表名 where 约束
- 查询时,起别名 用 as
select 字段 as 别名 from 表名; 查询出的表是临时视图,而不是真实存在的表。as可以省略但是要加一个空格。
-
查询时去除重复数据 distinct
select distinct 要去重的字段 from 表名;
对多个字段去重 效果是多个字段拼接后的结果 distinct要写在所有字段的前面
select distinct 字段1,字段2 from 表名;
在SQL中,数值+数值可以正常运算,数值+字符串,如果字符可以转化为数值,可以正常运算,若不可以,结果为原数值
-
ifnull
如果为空,始终指定数值替换
select 原始值+ifnull(comm,100) 字段 from 表名 若为空全部替换为100.
-
拼接字符串
select concat(“字符串”,字段1,“字符串”,字段1)from 表名;
-
使用限定的逻辑表达式
与 and 英文表示between and 相当于<= >=
或 or 表示为in(数据1,数据2,数据3,……)
非 not 表示为<>
<=> 表示等于,用于和null作比较
-
模糊查询
查找出所有姓张的员工
select * from 表名 where name like “张%”; %表示任意个数
查找出所有姓张且名字为两个字的员工
select * from 表名 where name like “张_”;
找所有名字中带“一”的员工
select * from 表名 where name like“%一%”;
数据库删除
1.先停止数据库服务
计算机右键——管理——服务——找到MySQL——右键停止
任务管理器——服务——找到MySQL——右键停止
2.卸载