SQL语句用于维护管理数据库,包括数据库查询、数据更新、访问控制、对象管理等功能
SQL语句分类
DDL |
数据定义语言,用于创建数据库对象,如库、表、索引等 |
DML |
数据操作语言,用于对表中的数据进行管理 |
DQL |
数据查询语言,用于从数据表中找到符合条件的数据记录 |
DCL |
数据控制语言,用于设置或更改数据库用户或角色权限 |
进入数据库
[root@master ~]# mysql -u root –p # 登陆MySQL数据库
Enter password: # 输入登陆密码
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.6.19-log Source distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]> quit # 退出MySQL数据库
Bye
查看当前服务器中的数据库
SHOW DATABASES; (大小写不区分,分号“;”表示结束)
MySQL [mysql]> show databases; # 查看数据库
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| mysql_chd |
| mysql_chuid |
| performance_schema |
+--------------------+
5 rows in set (0.00 sec)
查看当前使用的数据库
MySQL [mysql_chuid]> select database();
+-------------+
| database() |
+-------------+
| mysql_chuid |
+-------------+
1 row in set (0.01 sec)
查看数据库创建语言
SHOW CREATE DATABASE 数据库名;
MySQL [mysql_chuid]> show create database mysql_chuid;
+-------------+------------------------------------------------------------------------+
| Database | Create Database |
+-------------+------------------------------------------------------------------------+
| mysql_chuid | CREATE DATABASE `mysql_chuid` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+-------------+------------------------------------------------------------------------+
1 row in set (0.03 sec)
查看数据库中包含的表
USE 数据库名;
SHOW TABLES;
MySQL [(none)]> use mysql # 进入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 [mysql]> show tables; # 查看数据库中的表
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| event |
| func |
| general_log |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| innodb_index_stats |
| innodb_table_stats |
| ndb_binlog_index |
| plugin |
| proc |
| procs_priv |
| proxies_priv |
| servers |
| slave_master_info |
| slave_relay_log_info |
| slave_worker_info |
| slow_log |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+
28 rows in set (0.00 sec)
查看表的结构(字段)
USE 数据库名
DESCRIBE [数据库名]表名;
可缩写成:DESC 表名;
MySQL [mysql]> desc servers; # 查看表的结构
+-------------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+----------+------+-----+---------+-------+
| Server_name | char(64) | NO | PRI | | |
| Host | char(64) | NO | | | |
| Db | char(64) | NO | | | |
| Username | char(64) | NO | | | |
| Password | char(64) | NO | | | |
| Port | int(4) | NO | | 0 | |
| Socket | char(64) | NO | | | |
| Wrapper | char(64) | NO | | | |
| Owner | char(64) | NO | | | |
+-------------+----------+------+-----+---------+-------+
9 rows in set (0.33 sec)
* 其中,各个字段的含义如下:
1)Null:表示该列是否可以存储 NULL 值。
2)Key:表示该列是否已编制索引。PRI表示该列是表主键的一部分,UNI表示该列是UNIQUE索引的一部分,MUL表示在列中某个给定值允许出现多次。
3)Default:表示该列是否有默认值,如果有,值是多少。
4)Extra:表示可以获取的与给定列有关的附加信息,如AUTO_INCREMENT 等。