mysql数据库介绍及基本操作
一、mysql数据库的介绍:
1.在linux操作系统上连接MySQL服务器的命令是mysql,语法:
mysql [-h host] [-u username] [-p passwd]
其中,host是要登陆的的主机名,username与passwd分别是MySQL的用户名和密码,MySQL的初始管理账号是root,没有密码,第一次进入时只需输入mysql即可。
2.断开Mysql服务器:
quit或q
3.显示服务器的版本号和当前日期:
mysql> select version(),current_date; +-----------+--------------+ | version() | current_date | +-----------+--------------+ | 5.1.66 | 2017-07-09 | +-----------+--------------+ 1 row in set (0.00 sec)
4.Mysql的几个重要目录:
数据库目录:/var/lib/mysql/
配置文件:/usr/share/mysql (mysql,server命令及配置文件)
相关命令:/usr/bin (mysqladmin、mysqldump等命令)
启动脚本:/etc/rc.d/init.d/ (启动脚本文件 mysqld的目录)
二、mysql数据库的基本操作:
1.显示数据库列表:
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | test | +--------------------+ 3 rows in set (0.00 sec)
2.显示数据库中的表:
mysql> use mysql; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> show tables; +---------------------------+ | Tables_in_mysql | +---------------------------+ | columns_priv | | db | | event | | func | | general_log | | help_category | | help_keyword | | help_relation | | help_topic | | host | | ndb_binlog_index | | plugin | | proc | | procs_priv | | servers | | slow_log | | tables_priv | | time_zone | | time_zone_leap_second | | time_zone_name | | time_zone_transition | | time_zone_transition_type | | user | +---------------------------+ 23 rows in set (0.00 sec)
3.查看数据库中func表的结构:
mysql> describe func; +-------+------------------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+------------------------------+------+-----+---------+-------+ | name | char(64) | NO | PRI | | | | ret | tinyint(1) | NO | | 0 | | | dl | char(128) | NO | | | | | type | enum('function','aggregate') | NO | | NULL | | +-------+------------------------------+------+-----+---------+-------+ 4 rows in set (0.00 sec)
4.创建一个新的数据库,并创建一个新的数据表:
mysql> create database school; Query OK, 1 row affected (0.00 sec) mysql> use school; Database changed mysql> create table student ( -> id char(6) primary key, -> name varchar(8), -> sex char(1), -> birth date); Query OK, 0 rows affected (0.03 sec)
5.向表中添加记录,然后修改记录:
mysql> insert into student values ('110001','Ctl','M','1992-12-01'); Query OK, 1 row affected (0.00 sec) mysql> insert into student values ('110002','Hqf','F','1994-04-01'); Query OK, 1 row affected (0.00 sec) mysql> update student set id='110003' where name='Hqf'; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> select * from student; +--------+------+------+------------+ | id | name | sex | birth | +--------+------+------+------------+ | 110001 | Ctl | M | 1992-12-01 | | 110003 | Hqf | F | 1994-04-01 | +--------+------+------+------------+ 2 rows in set (0.00 sec)
6.删除记录、表结构修改、添加新字段:
mysql> delete from student where id='110003'; Query OK, 1 row affected (0.00 sec) mysql> alter table student modify name varchar(10); Query OK, 1 row affected (0.04 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql> alter table student add addr varchar(40); Query OK, 1 row affected (0.04 sec) Records: 1 Duplicates: 0 Warnings: 0
7.删除某个字段、修改表名、删除数据库:
mysql> alter table student drop column addr; Query OK, 1 row affected (0.04 sec) Records: 1 Duplicates: 0 Warnings: 0 mysql> alter table student rename students; Query OK, 0 rows affected (0.00 sec) mysql> drop database school; Query OK, 1 row affected (0.00 sec)
三、向Mysql添加新用户:
mysql> grant select,insert,update,delete on*.* to user_1@"%" identified by "123456"; Query OK, 0 rows affected (0.00 sec) mysql> grant select,insert,update,delete on school.* to user_3@web01 identified by "123456"; Query OK, 0 rows affected (0.00 sec)
说明:
第一个语句,添加用户user_1,密码为123456,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。(以root用户连入Mysql,然后输入命令)
第二个语句,添加用户user_2,密码为123456,让此用户只可以在web01上登陆,并可以对数据库school进行查询、插入、修改、删除的操作。(web01指本地主机,即Mysql服务器所在的那台主机)。
在Mysql数据库中,权限是通过登陆到数据库的用户账号和主机名来确定使用者的使用权限,主要涉及该使用者在数据库上的查询、插入、修改、删除等操作的权限。
三种方式创建Mysql账户:
1.使用grant语句
2.直接操作Mysql授权表
3.使用Mysql账户管理功能的第三方程序,例如:phpMyAdmin。