mysql-DDL-DML-DCL
列名的修饰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语句的分类
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 新表名;
代码:
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;
开启一个新的窗口,连接数据库
连接不上,因为默认采用的是 mysql -uroot -hlocalhost -p'password'
改成这样如下就可以连接mysql了
mysql -uroot -h 127.0.0.1 -p'password'
编码问题
windows系统的编码为gbk
如果装的是windows版的mysql,mysql的编码为utf8的话,则可能出现编码问题
1.查看mysql的编码
2.将mysql的编码修改为与windows相同的编码为gbk
mysql> set names gbk;
注:这样只是临时解决了问题
如果重新连接mysql,则又会出现乱码问题,这样只能在mysql的配置文件中修改mysql.ini文件
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]