mysql数据库基本操作sql语言

mysql数据库基本操作sql语言

mysql的启动与关闭

启动

/etc/init.d/mysql start

多实例使用自建脚本启动

2种关闭数据库方法

mysqladmin -uroot -p密码 shutdown #优雅关闭
/etc/init.d/mysqld stop
    

登录mysq

命令mysql  常用参数 mysql -u -p -P -h -S     

#-u指定登录用户 -p用户密码 -P指定端口号 -h远程连接mysql的IP -s多实例登录时指定mysql的sock文件 -e在外部执行sql命令

 mysql -uroot -p123456 -P 3306 -h 192.168.1.1 -S /data/3306/mysql.sock 

本地mysql登录只用-u -p 多实例加-S  非远程不用-P-h

mysql设置密码

新建无密码用户设置密码

mysqladmin -uroot password 密码

修改密码

mysqladmin -uroot -p原密码 password 新密码            #多实例指sockt

在mysql数据库内修改密码

mysql> use mysql;    #进入mysql库
mysql> update user set password=password("123456") where user='root';  
#更改原user表内的root行的password里的数据改为123456 前边加password用于数据加密 mysql
> flush privileges;    #刷新

mysql的基本操作

show 查看 use进入  describe显示数据表的结构  

show status;        #查看mysql状态
show databases;      #查看库所有库  
show databases like '库名'; #查看库内的表 show tables;        #查看表 需要先'use 库名'进入该库才能查看 show grants;        #查看授权用户权限
show grants for 'root'@'localhost';      #查看指定用户权限
use 库名            #进入一个库相当于linux的cd命令
status;            #显示当前数据库状态
flush privileges;      #刷新权限

Mysql~sql语言

1.数据查询语言DQL    select   #查看

2.数据操作语言DML insert update和delete  #插入 更新和删除开发常用

3.事务处理语言TPL  begintransaction commit和rollback  #不用

4.数据控制语言DCL    grant revoke  #设置用户权限和删除用户权限      运维必备

5.数据定义语言DDL    create drop    #创建和删除             运维必备

6.指针控制语言CCL             #不用

表格例子:

名字  年龄  工作  工资  编号

秦穆公  50     秦王        5000         1

晋文公    40        晋王        6000         2

齐桓公    60        齐王        7000         3

1.create建库建表

建库格式:create databa 数据库名;

mysql> create database 春秋五霸;      #建库 如果编译没指定字符集 默认为拉丁文 可在建库时指定字符集

建表格式:create table  表名;

use 春秋五霸      #进入春秋五霸库
create table 春秋五霸(名字 char(20) not null,年龄 char(20) default "",工作 char(20) not null,工资 int(20) not null,编号 int not null,primary key(编号));
#在春秋五霸库中建一个叫春秋五霸的表 表内记录了名字,年龄,工作,工资,编号
not null 表示对应表内内容不能为空 ,default默认,如果不给于值按默认写 primary key(编号)索引关键字 为编号 char 字符类型 int数字型
参考http://www.runoob.com/mysql/mysql-data-types.html

 2.drop删库删表

格式 drop table 数据库.表名;

  drop database 数据库名;

drop table 春秋五霸.春秋五霸;  #删除春秋五霸库中的春秋五霸表 如果use到了春秋五霸库则可以直接drop table 春秋五霸;删除春秋五霸表
drop database 春秋五霸;      #删除春秋五霸库

3.insert 插入新数据

格式: insert into 表名(字段1,字段2,.........) values('字段值1','字段值2'......);

insert into 春秋五霸(名字,年龄,工作,工资,编号)values('秦穆公','50','秦王','5000','1');
insert into 春秋五霸(名字,年龄,工作,工资,编号)values('晋文公','40','晋王','6000','2');
insert into 春秋五霸(名字,年龄,工作,工资,编号)values('齐桓公','60','齐王','7000','3');
insert into 春秋五霸 values('越王','70','越王','8000','4'); #如果需要按格式正行插入可以不写字段 直接values写字段值

4.update更改原有数据

update 表名 set 字段名1='新值1',字段名2='新值2' where 条件表达式;

update 春秋五霸 set 名字='越王',年龄='70',工作='越王',工资='8000' where 编号=4;  
#更新春秋五霸表内和穆公数据 通过where 匹配编号4匹配到和穆公       where支持 and or                      

mysql数据库基本操作sql语言

mysql数据库基本操作sql语言

 5.delete删除不需要的数据

delete from 表名 where 条件表达式;

delete from 春秋五霸 where 编号=6;    #删除上图编号6的穆公内容

mysql数据库基本操作sql语言

模糊删除:

delete fromwhere 名字 like '%公';   #删除以公字结尾的

6.select查询语句

格式:select 字段名1,字段名2,..... from 表名 where 条件表达式;

字段名1 看什么内容,from从哪个表看  where匹配橫行内容

select * from 春秋五霸;                    #看春秋五霸所有内容
select 名字 from 春秋五霸;                  #只看春秋五霸所有名字
select * from 春秋五霸 where 名字='晋文公';         #只看晋文公的资料
select 名字 from 春秋五霸 where 名字='晋文公';        #只看晋文公的名字
select * from 春秋五霸 where 名字 like '%王%';       #模糊查找 如果只记得名字里带个王字 可以(where 名字 like '%王%')通过正则匹配查找      
 

mysql数据库基本操作sql语言

 mysql数据库基本操作sql语言

mysql数据库基本操作sql语言

 7.grand用户权限设置

语法:grant 权限 on 库.表 to '用户名'@'允许主机'  identified by '密码';      #如果用户不存在直接创建用户

用户不存在=create user 'xixi'@'localhost' identified by '123456';#创建用户+grant all on *.* to  'hehe'@'localhost';#给与权限

例: 

grant all on *.* to 'hehe'@'localhost' identified by '123456';  #创建本地mysql用户hehe 给与权限all(所有)密码为:123456
grant all on *.* to 'hehe'@'192.168.1.%'  identified by '123456'   #创建用户hehe  允许192.168.1.0网段连接
#@后可以跟网段 IP localhost 和域名  

8.revoke撤销用户权限

语法:revoke 撤销的权限 on 库.表 from '用户'@'允许主机'

revoke drop on *.* from 'hehe'@'localhost';      #撤销呵呵用户 对所有库所有表的drop权限  只能revoke掉grant给与过的权限

9.mysql通配符 

-任意单个长度字符

%任意长度任意字符

10.select扩展

select user();       #当前登录mysql的用户
select now();     #显示当前时间
select user(),now(); #显示当前用户和时间
select database();  #显示当前所在的库