(图片来源于Baret-H)
Mysql通用语法
(1.)SQL语句可以单行或多行书写,以分号结尾
(2.)MYSQL数据库SQL语句不区分大小写,关键字建议使用大写
(3.)注释:
单行注释: – 注释内容 或 #注释内容(MYSQL特有)
多行注释:/* 注释内容*/
(4.)基本介绍:
数据库: 英文:DataBase 简称DB
数据库管理系统: 英文:DataBase Management System,简称DBMS
SQL: 英文:Structured Query Language,简称SQL,结构化查询语言
mysql 退出:exit或quit
mysql 修改默认账号密码 mysqladmin -u 账号名(账号名) password 密码(密码)
mysql 登录参数mysql -u用户名 -p密码 -h要连接的mysql服务器的ip地址(默认127.0.0.1) -P端口号(默认3306)
mysql 敲net start mysql 使mysql能在电脑本地服务上运行
mysql 敲net stop mysql 使mysql在电脑上本地服务停止运行
mysql 敲mysqld -remove mysql,卸载mysql
(5.)卸载mysql:
1.敲net stop mysql 使mysql在电脑上停止运行
2.敲mysqld -remove mysql,卸载mysql
3.最后删除mysql目录及相关环境变量
Mysql分类
DDL(Data Definition Language)数据定义语言,用来定义数据库对象:数据库,表,列等
DML(Data Manipulation Language)数据操作语言,用来对数据库中表的数据进行增删改
DQL(Fata Query Language)数据查询语言,用来查询数据库中表的记录(数据)
DCL(Data Control Language)数据控制语言,用来定义数据库的访问权限和安全级别,及创建用户
基本语法
DDL
对数据库的操作
create database 文件名; 创建数据库
create database if not exists db1; 如果此数据库存在,则不创建,若不存在,则创建
drop database db2; 如果不想要该数据库,则删除
drop database if exists db2; 如果db2存在,则删除
use db1; 使用该数据库;
select database(此为一个函数); 判断当前使用的是什么数据库
show databases; 查看目录中有几个数据库;
对表的操作
show tables; 查询当前数据库下所有表名称;
desc 表名称; 查询表结构
创建表: 例:
create table 表名 ( create table tb_user(
字段1 数据类型1, id int,
字段2 数据类型2, username varchar(20),varchar在此为字符串类型,长度最大为20
…
字段n 数据类型n password varchar(32)同上
); );
修改表
alter table 表名 rename to 新的表名; 修改表名
alter table 表名 add 列名 数据类型; 添加一列
alter table 表名 modify 列名 新数据类型 修改数据类型
alter table 表名 change 列名 新列名 新数据类型; 修改列名和数据类型
alter table 表名 drop 列名; 删除列
删除表
drop table 表名;
drop table if exists 表名; 判断表是否存在再删除
数据类型
大致分为三类:
数值: 对double进行定义,例 score double(总长度, 小数点后保留的位数)
日期;
字符串: 对char(定长字符串,存储的性能高,浪费空间),varchar(变长字符串,存储的性能低,节省空间)进行定义 例: name char(10),name vachar(10),字符串指定长度不能超过10,否则报错
DML
添加数据
给指定列添加数据:
insert into 表名(列名1,列名2,…) values(值1,值2,…);
给全部列添加数据:
insert into 表名 values(值1,值2,…);
批量添加数据
insert into 表名(列名1,列名2,…) values (值1,值2,…),(值1,值2,…),(值1,值2,…)…;
insert into 表名 values (值1,值2,…),(值1,值2,…),(值1,值2,…)…;
修改数据
update 表名 set 列名1=值1,列名2=值2,…[where 条件];(注意:如果update语句没有加where限制条件则会将所有数据修改)
删除数据
delete from 表名 [where 条件];
DQL
基础查询
1.查询多个字段:
select 字段列表 from 表名;
select * from 表名; – 查询所有数据
2.去除重复记录:
select distinct 字段列表 from 表名;
3.起别名:
AS: AS也可以省略,别名和字段距离一个空格
约束
约束:(均可在创建表时设置,或用alter语句设置)
非空约束: 保证列中所有数据不能有null值 not null
唯一约束: 保证列中所有数据各不相同 unique
主键约束: 主键是一行数据的唯一标识,要求非空且唯一 primary key(自增长 auto_increment:当列是数字类型并且 唯一约束可以加)
检查约束: 保证列中的值满足某一条件 check
默认约束: 保存数据时,未指定值则采用默认值 default
外键约束: 外键用来让两个表的数据之间建立链接,保证数据的一致性和完整性 foreign key
Tips: MYSQL不支持检查约束
例子:
create table emp(
id int primary key auto_increment, – 员工id,主键
ename varchar(50) not null unique, – 员工姓名,非空且唯一
joindate date not null, – 入职日期,非空
salary double(7,2) not null, – 工资,非空
bonus double(7,2) default 0-- 奖金,如果没有奖金默认为0
);
事务
(1).开启事务:
start transaction;
或者 begin;
(2).提交事务:
commit;
(3).回滚事务:
rollback;
(4).事务的四大特征:
原子性(Atomicity): 事务是不可分割的最小操作单位,要么同时成功,要么同时失败
一致性 (Consistency): 事务完成时,必须使所有的数据保持一致状态
隔离性(Isolation): 多个事务间,操作的可见性
持久性(Durability): 事务一旦提交或回滚,它对数据库中数据的改变就是永久的