Mysql语法

1 数据库管理
1.1 初始化数据库
windwos+r 打开窗口后输入cmd 按enter确定
输入cd命令进入mysql目录 
cd X:\....mysql       (复制myql所在目录路径)
执行后输入   bin\mysqld --initialize
执行后没有任何提示 则表示初始化成功

1.2 创建数据库
create database 数据库名;
例:create database db_info
(数据库名一般由db_开头)

1.3查看数据库
show databases;
(有很多个数据库所以加s)
例:show databases;

1.4删除数据库
drop database 数据库名;
例:drop database db_info;
(如果删除的那个数据库不存在 就会报错  可以用 if exists避免此问题)
drop database if exists 数据库名;
例:drop database if exist db_info;
(如果有此数据库就会删除,如果没有 也会执行成功,不会报错)

2mysql数据表管理
2.1创建数据表
(数据库里有许多数据表 数据表来存储数据)
(在我们创建完数据库时要先使用数据库)
use database 数据库名;
例:use database db_info;
(先使用要用的数据库,后才查看该数据库有哪些表)
show tables;

创建表
create table 表名(字段名,类型(长度),字段名,类型(长度).....);
例: create table tb_info(id int(10),name varchar(10));

(查看表的结构)
descrire(desc) 库名.表名;
例:desc db_stu.tb_info;
(可简写为desc)

!!!数据库备份与还原 
(用于保存数据库,还原数据库)
1备份   (备份文件可以已 库名_bak日期   命名)
mysqldump -u (用户名) -p (密码) [数据库名]>保存路径 保存名称.sql
(不写分号)
例:mysqldump -u root -p db_stu>e:\db_stu_bak2023222.sql
(执行之后  我们的e盘里就会有一个名为db_stu_bak2023222.sql的文件)

2数据库还原
先进入要恢复至哪个数据库
use 库名;
mysql>source 文件所在路径
例:use db_stu;
       mysql > source e:\tb_info_bak202322.22.sql

2.2修改数据表
alter table 旧的表名 rename 新表名;
例:alter table db_info rename db_info1;

修改字段名
alter table 表名 change 旧字段名 新字段名 数据类型;
例:alter table tb_info change  id  stu_id int(10);

修改字段类型
alter  table  表名 modify 字段名 数据类型;
例:alter table tb_info modify name varchar(255);

增加字段
alter table 表名 add 字段名 属性;
例:alter table tb_info add  score float(5,2);

删除字段
alter table 表名 drop 字段名;
例: alter table tb_info  score;

2.3删除数据表
use 数据库名;
drop 表名;

drop table 库名.表名
(删除哪个库里的哪个表)
例:drop table db_stu.tb_info;

3用户管理
3.1创建与删除用户
create user '用户名'@'host' identified by '密码';
例: create user 'user1'@'localohost' identified by '123456';
(host 可以是 localhost ip地址 和 %(%指任意主机))

3.2授予与回收用户权限
grant 权限 on 库名.表名 to '用户名'@'host';
例: grant all on db_stu.tb_info to 'user1'@'%';
(权限 可以是 all(全部权限) select insert.....)

回收权限
remove 权限 on 库名.表名 from '用户名'@'host';
例: remove select on db_stu.tb_info from 'test'@'192.168.59.111';
(库名.表名 可以写 *.* 意思是回收该用户在host 对所有库的XXX权限)

设置与更改用户密码
set password  for '用户名'@'host' = password('密码');
例: set password for 'user'@'localost' = password('123456');

4sql基本语法
4.1sql语句简介
sql是结构化查询语言
sql分为3种类型
1.DDL 数据定义语句
2.DML 数据操控语句
3.DCL 数据控制语句

4.2MYSQL基本数据类型
1数值类型包括整数类型,浮点数类型,定点数类型
整数类型
tiny int
small int
medium int
int
big int
浮点数类型 又分为(浮点数float 双精浮点数(double))
float(m,n)
double(m,n)
定点数类型 用来保存缺缺精度的值
如在decimal(m,n)中 m表示十进制数字总和的位数,n表示小数点后面数字的位数

2字符串类型
字符
char 定义固定长度字符串 会在值右边自动填充空格达到指定长度
varchar 定于可变长度字符串  其值在保存过程时不会进行填充
binary
varbinary
二进制
text
blob
枚举
enum
集合对象set

3日期和时间类型
year      yyyy
time     hh:mm:ss
date     yyyy-mm-dd
datetime    yyy-mm-dd hh:mm:ss
timestamp     yyy-mm-dd hh:mm:ss 时间戳

4.3数据插入
insert into 表名 values(值1,值2....);
例:insert into tb_info values('1','女','188');
insert into 表名(列1,列2....) values(值1,值2....);
例:insert ionto tb_info(name,sex) values('张三','男');

一次性插入多条数据
insert into 表名(列1,列2....) values(值1,值2....),(值1,值2....),(值1,值2....);
例:insert ionto tb_info(name,sex) values('张三','男'),('李四','男'),('王五','男');

4.4数据修改
update 表名 set 列名 = 新值 [where  条件]   中括号指可选可不选
例:update db_stu set sex = '男' where sex = '女';
(把性别为女的修改成男的)

update 表1,表2..... set 表1.列1,表2.列2.....[where 条件];
例:update db_stu,db_stu2 set db_stu.sex='男',db_stu2.age=13;

4.5数据删除
delect from 表名 where 列名 = 值;
例:delect from db_stu where age=15;
delect from db_stu where age=15 and sex='男'; 删除年龄为15并且性别为男的数据

delect 表1,表2.... from 表1,表2.... where 列名 = 值;

4.6数据查询
select 字段 from 表名 where 条件;
例:select * from db_stu;    *查看全部字段
select name,age,sex,id from db_stu;
select age from db_stu where age>20;  查询年龄大于20的数据
(where条件可以是 =,<>,!=,>,<,>=,<=,and,or,between n and x)

4.7联合查询
select 条件 from 表1
union/union all (union all用于将结果集直接合并在一起  union用于将union all后的结果进行一次去重)
select 条件 from 表2;
例: select name from tb_info1
        union all
        select name from tb_info2;

4.8不重复查询
select distinct 字段 from 表名;
例:select distincy name from tb_info;

4.9模糊查询
select 字段 from 表名 where 字段 like  值;
例:select name tb_info where name like '%z%';  (名字中带有z的)
% 用来匹配0个或多个字符 对长度没有限制
- 用来匹配任意单个字符 常用来限制表达式的字符长度
例:select name tb_info where name like '_s_';  (名字长度为3且第二位字母为s)

4.10排序查询
select 字段 from 表名 where 条件 order by 字段1 desc/asc, 字段2desc/asc;     (desc降序排序 asc升序  order by后面可以跟多个不同的排序字段)
例: select * from tb_info order by age desc,tall asc;

4.11限制查询
select 字段 limit 起始偏移量,行数;
例: select * from db_info order by age limit 4;   前4行数据
 select * from db_info order by age limit 1,3;  从第1条后的前3行数据

4.12聚合
select 字段 聚合操作 from 表名 where 条件 group by 字段1,字段2...  having 条件;
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值