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