1.mysql数据存储结构
1.1由“数据库”——》“表”——》“数据”组成
1.2管理数据库需要使用SQL(结构化查询语言)
SQL语言分为:
1 数据查询语言DQL
按照指定的组合、条件表达式或排序检索已存在的数据库中数据,不改变数据库中数据。
命令:SELECT…FROM…WHERE…
2 数据操纵语言DML
对已经存在的数据库进行元组的插入、删除、修改等操作
命令:INSERT、UPDATE、DELETE
3 数据定义语言DDL
创建、修改或删除数据库中各种对象,包括表、视图、索引等。
命令:CREATE TABLE , CREATE VIEW, CREATE INDEX、ALTER TABLE ,
DROP TABLE , DROP VIEW, DROP INDEX
4 数据控制语言DCL
用来授予或收回访问数据库的某种特权、控制数据操纵事务的发生时间及效果、对数据库进行监视
命令:GRANT、REVOKE、COMMIT、ROLLBACK
2.查询所有数据库
通过命令行登录数据库,输入第一个查看数据库的sql语句
mysql> show databases; --默认显示4个数据库
+--------------------+
| Database |
+--------------------+
| information_schema | --mysql元数据,基础数据
| mysql | --mysql配置数据库,其中包含用户信息(用户名和密码,权限管理)
| performance_schema | --mysql数据库软件的运行数据,日志信息,性能数据
| test | --测试数据库,空数据库
+--------------------+
3,创建数据库
3.1 sql语句为:create database 数据库名称;
mysql> create database first; --first为数据库名称
Query OK, 1 row affected (0.01 sec)
3.2 创建数据库时设置数据库的字符
mysql> create database two --此时不需输入分号,因为分号意味这语句结束,直接回车
-> default character set utf8; --设置默认字符为utf-8
Query OK, 1 row affected (0.00 sec)
3.3 查看数据库的默认字符集
mysql> show create database first; --first为数据库名称
+----------+---------------------------------------------------------------+
| Database | Create Database |
+----------+---------------------------------------------------------------+
| first | CREATE DATABASE `first` /*!40100 DEFAULT CHARACTER SET gbk */ |
+----------+---------------------------------------------------------------+
1 row in set (0.00 sec)
3.4 删除数据库
mysql> drop database two; --two为数据库名称
Query OK, 0 rows affected (0.17 sec)
3.5 修改数据库的默认字符集
mysql> alter database first default character set utf8; --修改first数据库的字符为utf-8
Query OK, 1 row affected (0.00 sec)
4.表管理
4.1选择数据库
mysql> use first; --first为数据库名称
Database changed
4.2创建表
mysql> create table student( --student为表名称
-> sid int, --sid为字段名称 编号,int是字段类型 整形
-> sname varchar(20), --sname为字段名称 姓名,varchar(20)是字段类型 字符串长度是20
-> sage int --sage为字段名称 年龄,int是字段类型,整形
-> );
Query OK, 0 rows affected (0.14 sec)
4.3查看所有表
mysql> show tables;
+-----------------+
| Tables_in_first |
+-----------------+
| student |
+-----------------+
1 row in set (0.00 sec)
4.4查看一张表的表结构
mysql> desc student; --student表名称
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| sid | int(11) | YES | | NULL | |
| sname | varchar(20) | YES | | NULL | |
| sage | int(11) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.05 sec)
4.5删除表
mysql> drop table student;
Query OK, 0 rows affected (0.11 sec)
4.6修改表
mysql> alter table student add column sgender varchar(2); --向student表中增加一个sgender的字段,column可以省略
Query OK, 0 rows affected (0.06 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table student drop sgender; --删除student表中sgender这个字段,column可以省略
Query OK, 0 rows affected (0.06 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table student modify sname varchar(10); --修改student表中sname字段的类型为varchar(10)
Query OK, 0 rows affected (0.08 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table student change sname newsname varchar(20); --修改student表中sname字段的名称,变为newsname
Query OK, 0 rows affected (0.08 sec)
Records: 0 Duplicates: 0 Warnings: 0