MySQL基础操作增,删,改,查。
一,SQL语言概述
1,SQL语言是关系型数据库的标准语言,用于维护管理数据库,如数据查询,数据更新,访问控制,对象管理等功能。
2,建表
这是需要掌握的。
(1)#Show databases; 查看数据库里所有的小数据库名。 show看 databases 数据库小库
(2)#Create database yunjisuan; 创建一个叫yunjisuan的库 create创建
(3)#drop database yujisuan; 删除一个叫yunjisuan的库 drop
(4)我现在想看小数据库里的yunjisuan的表呢?
#use yunjisuan; 我先把对象设定成yunjisuan这个小库 use使用
#show tables; tables表
(5)如何建表呢?
首先先选个对象, 建立表头
#use yunjisuan;
显示:Database changed改变
# create table uses (user_name char(20) not null, user_passwd char(30) default '',primary key(user_name)); 在yunjisuan这个小数据库中,创建一个叫uses的表,里边有两个字段姓名和密码,添加内容时,就可以添加姓名和密码了
tables(多个表) table(单个表)
(1)user_name char(20) not null
user_name 字段名
char字节 一个字母代表一个字节,这个字段里边最多不能超过20字节。
not null不能为空。
这个逗号前的意思是 第一个是字段名 第二个是字节数。第三个是它能不能为空。
(2)user_passwd char(30) default ''
第二段意思是给user设置密码为空
default 默认
(3)primary key(user_name)
primary 主要的
key 主键
这段意思是 指定一个主键 user_name
(6)继续查看这个yunjisuan这个小库的表,刚才创建的表user就出来了
#show tables;
(7)如何查看这个表的字段呢? (只是看表头不是看数据)
#describe uses;
二,四种对表数据进行操作的SQL语句。
增,删,改,查
增:insrrt into 表名[字段名] values 具体数值
删; delete from 表名 where
改: update 表名 set 字段='数值'
查:select 字段名 from 表名
三,本地账户在MySQL的关系。
小库其实就是data目录下的子目录。
开发管小库叫做空间
小库的名字叫做空间名
小库里的表,叫做空间名,表名。
1,本地账户在mysql的user这个表里边
mysql> select user,host,password from mysql.user; 查看user这个表。里边password 是加密的,我现在想把这个密码给改了
mysql> update mysql.user set password='666666' where host='localhost'; 这就给改了。
再用刷新下,刷新很重要。
mysql> flush privileges;
之后登陆MySQL, 用新设置的密码。但是还是登录不上去,这时就得需要个加密函数。
mysql> update mysql.user set password=password('666666') where host='localhost';之后刷新,在登录就没问题了。
password=password('666666')这个意思是666666的密码需要passwor这个函数加密,在赋值给前一个password.
四,MySQL权限。
1,用户权限设置 grand (用户不存在,则新建用户)
#netstat -antup | grep 3306 查看MySQL端口。
mysql> grant all on *.* to 'root'@192.168.29.149' IDENTIFIED BY '123456'; 这句话是如何创建账号
all: 这个指的是所有的权限赋予所有权限,增删改查 如all换成select那就是只有读权限。
on: 如果没有all 只有这个on代表只有读权限
*.*: 这个意思是 库.表 代表所有的库和所有的表。
to: 对那个账号 把前边的内容权限赋给后边这个账号,
'root'@192.168.29.149' 创建的是这个账号。用户名@登录IP
IDENTIFIED BY密码
2,现在进行远程连接。
先需要在启一台虚拟机,在这台虚拟机上yum安装 mysql, 这就是MySQL客户端。
之后创建个账户: 注意这个IP是我服务端的IP。创建的是谁的IP就只能用谁来登录。
mysql> grant all on *.* to 'yunjisuan'@'192.168.29.149' identified by '123123'; 这个创建好,那我就只能用192.168.29.149这个IP的虚拟机来登录。
在查看下本地所有的账户。 (账户下边是库)
mysql> select user,host from mysql.user;
之后刷新:
mysql> flush privileges;之后使用本机就可以登录,但是后边必须加IP号#mysql -uyunjisuan -p123123 -h 192.168.29.149; 这就叫在本机上以远程的方式登录本机。如果ip是127.0.0.1这就是本地登录只能用本机登录本机这个127.0.0.1的账户。
五,命令解释:
(1)启动MySQL数据库
#cd
#/etc/init.d/mysqld start 启动脚本
SUCCESS! 成功
#netstat -anpt | grep :3306 查看下端口
启动完毕
(2)登录MySQL数据库
#which mysql 用mysql命令直接登录或mysql -uroot -p
如果是mysql -h 是指定主机(IP地址)
mysql -p 是指定密码 没写就是没密码
mysql -P 是端口,不写默认就是3306
mysql -u 是指定用户,不写就是默认登录本地 如:#mysql -uroot -p 指定用户是root
ctrl+D 是退出MySQL数据库。
(3)设置MySQL数据库的登录密码
有个命令:
#whcih mysqladmin MySQL设置密码命令
#mysqladmin -uroot password '123123' 针对root用户设置密码 123123
%: 任意长度的任意字符
_ :任意单个字符。
Show databases; 查看所有数据库
Create database yunjisuan; 创建一个叫yunjisuan的库
drop database yujisuan; 删除一个叫yunjisuan的库
use yunjisuan; 我先把对象设定成yunjisuan这个小库 use使用
#show tables; tables表 show看
#describe uses; describe(低斯葛ruai波)描述, uses表名,查看表里的表结构。
#select * from uses; 查看星号就是所有字段的表,表名是user
#insrrt into uses values ('xiaohong','66666') 增加表名是uses的表的内容,里边有两个字段,姓名和密码,
#insrrt into uses (user_name)values ('baibai') 这回我给指定了一个字段, 有几个字段就写几个对应的值。我指定了一个,就写入一个的值。
#update uses set user_passwd='99999' where user_name='baibai'; 我想改uses这个表的user_passwd字段为99999,我指定的是user_name这个主键字段的baibai这行。
#delete from uses; 这是把uses表里的内容都清空。
#delete from uses where user_name='baibai'; 这是把uses表里指定的user_name字段的baiabi删除。因为user_name字段是主键,所以这一行包括user_passwd 字段也删除了。
#select * from yunjisuan.uses; 查看星号就是所有字段的表,yunjisuan这个库下边的uses表,这样查看也可以,省的use yunjisuan选对象了
#select user,host from mysql.user; 查看user,host这个字段内容,这个字段在musql库里的user表中。 这也是查看我虚拟机用户信息。
#insert into yunjisuan.uses values ('xiaohong','11111'); 这是增加,就是没有use 选对象而直接跨过库来插入,跨过yunjisuan这个库,进入到它的表uses中,插入两个字段内容。
#update yunjisuan.uses set user_passwd='333333' where user_name='baibai'; 更改内容跨过yunjisuan库,更改它的表uses的user_passwd这个字段的内容。但是指定的是user_name这个字段下的baibai这一行要不指定这一行,表里user_passwd字段的内容都会更改。
mysql> flush privileges; 刷新立即生效的意思,这样insrrt添加的内容就会写到硬盘里。
mysql> select user(); 查看我当前所处的账号。
mysql> show grants; 查看当前登录用户权限。
mysql> show grants for 'yunjisuan'@'192.168.29.149'; 这是查看yunjisuan这个账户的权限。查看别人的用户权限
mysql>revoke select on mysql.user from 'yunjisuan'@'192.168.29.149'; 这是删除权限,删除select读权限。