一.使用MySQL数据库

1.查看数据库结构

        show databases:用于查看当前MySQL服务器中包含的数据库,MySQL的每一条操作语句都是以分号(;)结束的。

         经初始化后的MySQL服务器,默认建立了四个数据库:test、mysqlinformation_schema和performance_schema(其中mysql是MySQL服务正常运行所需的数据库,其中包含了用户认证相关的表)。

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| auth               |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

备注:

  • information_schema数据库:保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等
  • performance_schema:用于监控MySQL server在一个较低级别的运行过程中的资源消耗、资源等待等情况
  • mysql:是 MySQL 服务正常运行所需的数据库,其中包含了用户认证相关的表

2.查看当前数据库中有哪些表

        SHOW TABLES语句:用于查看当前所在的数据库中包含的表,在操作之前,需要先使用USE语句切换到所使用的数据库。

mysql> use mysql;
Database changed
mysql> show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| engine_cost               |
| event                     |
| func                      |
| general_log               |
| gtid_executed             |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |

MySQL数据库的数据文件存放在/usr/local/musql/data目录下,每个数据库对应一个子目录,用于存储数据表文件。每个数据表对应三个文件,扩展名分别为“.frm”,“.MYD”和“.MYI”。

3.创建数据库和表

(1)创建数据库

mysql> create database auth;

 (2)创建数据表

mysql> use auth;
mysql> CREATE TABLE users (user_name CHAR(16) NOT NULL, 
user_passwd CHAR(48) DEFAULT '',
PRIMARY KEY (user_name));

备注:default设置默认值,primary key(字段)设置该字段为主键

(3)删除数据库

mysql>DROP DATABASE auth;

(4)删除数据表

mysql> DROP TABLE auth.users;

4.管理表中数据记录 

(1)插入数据记录

mysql>use auth;
mysql>INSERT INTO users(user_name,user_passwd) VALUES('zhangsan', PASSWORD ('123456')); 
mysql>INSERT INTO users VALUES('lisi', PASSWORD('654321'));

(2)查询数据记录

mysql>select * from auth.users;
mysql>SELECT user_name,user_passwd FROM auth.users WHERE user_name='zhangsan';

(3)修改数据记录

mysql>UPDATE auth.users SET user_passwd=PASSWORD('') WHERE user_name= 'lisi'; 
mysql>SELECT * FROM auth.users;

mysql>UPDATE mysql.user SET authentication_string=PASSWORD('123457') WHERE user='root';
mysql>FLUSH PRIVILEGES; 

[root@www ~]# mysqladmin -u root -p'123457' password '123456'

(4)删除数据记录

mysql>DELETE FROM auth.users WHERE user_name='lisi';

5.数据库表高级操作

(1)克隆表

mysql>create table user01 like auth.users;     //通过 LIKE 方法,复制 users 表生成 tmp 表,注意,此表为空
mysql>insert into user01 select * from auth.users;     //通过 player 表生成 tmp 表内数据记录 

(2)删除表

mysql> delete from user01 where user_name='zhangsan';
mysql>delete from user01; 
mysql>insert into user01 select * from auth.users;
mysql>truncate table user01; 
mysql>select count(*) from user01;

备注:

truncate和delete的区别:

truncate删除表中的内容,不删除表结构,释放空间;

delete删除表中的内容,不删除表结构,但不释放空间;

truncate 删除数据后重新写数据会从1开始,

delete删除数据后只会从删除前的最后一行续写;内存空间上,truncate省空间

delete属于DML语句,而truncate和drop都属于DDL语句

delete可以在后续加上where进行针对行的删除

truncate和drop后面只能加上表名,直接删除表,无法和where一起使用。

dorp table 表名 删除表,内容连带结构一起删除。

(3)临时表

mysql>select * from mytmp; 		//查看 mytmp 表是否存在 

mysql>CREATE TEMPORARY TABLE `mytmp` ( 
`id` int(10) NOT NULL AUTO_INCREMENT, 
`NAME` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, 
 `level` int(10) NOT NULL, 
PRIMARY KEY (id)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 		//创建临时表 
mysql> insert into mytmp(name,level) values('aa',10); 		//插入数据 
Query OK, 1 row affected (0.01 sec) 
mysql>select * from mytmp; 
mysql>quit //退出当前连接 
Bye 
mysql>select * from mytmp;     //重新连接 MySQL 之后查看临时表状态

二.数据库用户授权

1.授予权限

mysql>GRANT select ON auth.* TO 'zhangsan'@'localhost' IDENTIFIED BY '123456';

2:查看权限

mysql> SHOW GRANTS FOR 'zhangsan'@'localhost';

3:验证权限

[root@localhost ~]# mysql -u zhangsan -p123456

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐