设为首页 收藏本站
查看: 758|回复: 0

[经验分享] mysql-DDL-DML-DCL

[复制链接]

尚未签到

发表于 2018-10-2 14:23:54 | 显示全部楼层 |阅读模式
  列名的修饰
  

unsigned  
auto_increment
  
default
  
comment
  
not null
  
null
  

  
unique
  
index
  
key
  
primary key
  

  
auto_increment 必须制定为 primary key
  

  sql语句的运算符
  

=  赋值和判断都是  
!=  
  
< > =
  
OR
  
AND
  
BETWEEN...AND
  
IN
  
NOT IN
  

  sql语句的分类
DSC0000.jpg

  DDL
  

show databases;  
use 数据库名;
  
create database 数据库名;
  
drop database 数据库名;
  
创建数据表结构
  
create table 表名 (
  列名 列类型 其他的关键词,
  ...
  列名 列类型 其他的关键词
  
);
  
show tables;
  
desc 表名;
  
show create table 表名;
  
drop table 表名;
  
truncate 表名;
  

  
修改表的字段属性
  
alter table 表名 modify 字段名 类型 字段修饰;
  

  
修改表的字段的整个属性(包括字段)
  
alter table 表名  change 原字段 新字段 类型 字段修饰;
  

  
删除一整列
  
alter table 表名 drop 字段名;
  

  
添加一整列
  
alter table 表名 add 新字段 类型 字段修饰 after 原字段名;
  

  
重命名表名
  
alter table 原表名 rename [to] 新表名;
  

  

  代码:
  

mysql> create database shop;  
mysql> use shop;
  
mysql> create table user(
  ->>  -> user_name varchar(20) not null,
  -> password char(32) not null,
  -> email varchar(50) not null,
  -> mobile char(11) not null,
  -> fee decimal(10,2) default 0.00 not null,
  -> age tinyint unsigned not null
  -> );
  

  DML数据操作语言
  insert into 表名(列1,列2,列3...) values(列值 1,列值 2...);
  

-- 对指定列进行插入  
mysql> insert into user(user_name,email) values ('liudehua','liudehua@163.com');
  

  
-- 全部插入
  
mysql> insert into user values(3,'liming','999999','liming@163.com',13666666666,522.39,28);
  

  
-- 插入所有(对有主键的可以不列出id)
  
mysql> insert into user(user_name,password,email,mobile,fee,age) values
  -> ('jack','123456','jack@163.com','13888888888',123.11,25);
  

  

  select * from 表名;
  update 表名 set 列1=列值1,列2=列值2 where 条件;
  

-- 将所有字段age的值都设置为了100  
mysql> update user set age=100;
  
-- 根据条件修改age字段的值
  
mysql> update user set age=200 where>  

  delete from 表名 where 条件;
  delete from 表名;再插入数据,则id的值是往后加1
  truncate 表名;再插入数据,则id的值从1开始
  drop table 表名; 则整个表的结构也被删除了
  Mysql之DCL设置root指定的ip访问
  查看哪些用户,通过哪些ip访问mysql服务器
  

mysql> use mysql;  
mysql> select user,host from user;
  
+---------------+-----------+
  
| user          | host      |
  
+---------------+-----------+
  
| mysql.session | localhost |
  
| mysql.sys     | localhost |
  
| root          | localhost |
  
+---------------+-----------+
  

  限制数据库用户root只能通过127.0.0.1访问mysql服务器
  

mysql> update user set host='127.0.0.1' where user='root';  
mysql> flush privileges;
  

  开启一个新的窗口,连接数据库
DSC0001.jpg

  连接不上,因为默认采用的是 mysql -uroot -hlocalhost -p'password'
  改成这样如下就可以连接mysql了
  mysql -uroot -h 127.0.0.1 -p'password'
  编码问题
  windows系统的编码为gbk
  如果装的是windows版的mysql,mysql的编码为utf8的话,则可能出现编码问题
  1.查看mysql的编码
DSC0002.jpg

  2.将mysql的编码修改为与windows相同的编码为gbk
  mysql> set names gbk;
  注:这样只是临时解决了问题
  如果重新连接mysql,则又会出现乱码问题,这样只能在mysql的配置文件中修改mysql.ini文件
  [mysql]
  default-character-set=gbk
  设置mysql数据库root的密码
  1.在mysql数据库里修改root密码
  

mysql> use mysql;  
mysql> update user set authentication_string=password('admin') where user='root';
  
mysql> flush privileges;
  

  2.知道root旧密码的情况下修改root的密码
  

mysqladmin -uroot -p'old_password' password 'new_password'  

  3.修改配置文件my.cnf跳过授权,再进入到数据库里修改root的密码
  

service mysqld stop  
sed -ri '1a\skip-grant-tables' /etc/my.cnf
  
service mysqld start
  
mysql
  
mysql> update mysql.user set authentication_string=password('123456') where user='root';
  
mysql> flush privileges;
  
mysql> \q
  
sed -ri '/skip-grant-tables/d' /etc/my.cnf
  
service mysqld restart
  

  Mysql之DCL普通用户的创建授权以及权限回收
  

mysql> create user 'test'@'192.168.221.10'>
mysql> flush privileges;
  
mysql> select host,user,authentication_string from mysql.user;
  
+----------------+---------------+-------------------------------------------+
  
| host           | user          | authentication_string                     |
  
+----------------+---------------+-------------------------------------------+
  
| localhost      | root          | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
  
| localhost      | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
  
| localhost      | mysql.sys     | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
  
| 192.168.221.10 | test          | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
  
+----------------+---------------+-------------------------------------------+
  
mysql> \q
  

  使用test用户登陆
  

mysql -utest -h192.168.221.10 -p'123456'  
mysql> select user();
  
+---------------------+
  
| user()              |
  
+---------------------+
  
| test@192.168.221.10 |
  
+---------------------+
  

  使用root给test用户授权
  

mysql> grant update,insert,delete on shop.* to 'test'@'192.168.221.10';  
mysql> flush privileges;
  

  授权给test所有的权限
  

mysql> grant all privileges on *.* to 'test'@'192.168.221.10';  
mysql> flush privileges;
  

  创建用户并授权
  

mysql> grant all privileges on shop.* to 'test1'@'192.168.221.10'>
mysql> flush privileges;
  

  删除用户
  

mysql> drop user 'test'@'192.168.221.10';


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-607646-1-1.html 上篇帖子: 手工编译安装mysql-CYQ的boke的博客 下篇帖子: Centos6.8安装mysql5.6
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表