一、初识SQL语言
SQL(Structured Query Language )即结构化查询语言,其中SQL语言一共有三种类型,分别是:
DDL(database design language)数据库定义语言: 创建,删除,更改数据库、表、视图、索引、存储过程,例如 CREATE DROP ALTER DESC
DML(database manage language)数据库管理语言: INSERT(插入数据)、DELETE(删除数据)、UPDATE(更新数据)、 SELECT(查询数据)
DCL(database control language)数据库访问控制语言: 例如控制用户的访问权限GRANT、REVOKE
二、系统数据库
当我们对数据库进行系统初始化后,会默认建立的一些数据库:
-
information_schema: 虚拟库,主要存储了系统中的一些数据库对象的信息,例如用户表信息、列信息、权限信息、字符信息等
-
performance_schema: 主要存储数据库服务器的 性能参数
-
mysql: 授权库,主要存储系统用户的权限信息
三、创建数据库与表
1.创建数据库
CREATE DATABASE 数据库名; ---- >相当于文件系统中 mkdir 目录,它会创建一个目录,而在这里它会创建一个数据库。
mysql> CREATE DATABASE school;
2.数据库命名规则:
1.区分大小写;
2.唯一性; 如:class2_student class2_teacher
3.不能使用关键字; 如: create select
4.不能单独使用数字
5.推荐使用------>统一前缀_名称: db_student,db_class 等类似命名方法
其中字段名称可以使用中文,表名和库名,尽量不要使用中文
3.操作数据库
查看数据库:
SHOW DATABASES;
mysql> use school;
mysql> show tables;
+----------------------+
| Tables_in_school |
+----------------------+
| student1 |
+----------------------+
1 row in set (0.00 sec)
选择/切换数据库:
USE 数据库名 ;
表的绝对路径: mysql.user
文件系统的绝对路径:/test/test.txt
删除数据库
DROP DATABASE 数据库名;
4.创建数据表
use 库名;
解释:先是用(选择这个库)这个库,才能在这个库上建表。
CREATE TABLE 表名(字段1 属性1 属性2 属性3 , 字段2 属性1 属性2 属性3 ) 补充参数; ##注意命名规则,规范
mysql> create table student1(id int,name varchar(50), sex enum('m','f'),age int);
创建完毕后,可以用desc查看表结构:(字段属性,表的成品)
DESC 表名;
mysql> use mysql;
mysql> desc user;
+------------------------+-----------------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------------+-----------------------------------+------+-----+---------+-------+
| Host | char(60) | NO | PRI | | |
| User | char(16) | NO | PRI | | |
| Password | char(41) | NO | | | |
| Select_priv | enum('N','Y') | NO | | N | |
+------------------------+-----------------------------------+------+-----+---------+-------+
5.具体事例如下:
mysql> CREATE DATABASE school; //创建数据库school
mysql> use school; // 选择一个库
mysql> create table student1(id int,name varchar(50), sex enum('m','f'),age int); //创建一个表
Query OK, 0 rows affected (0.03 sec) //显示创建成功
mysql> show tables; //查看表(当前所在库)
+----------------------+
| Tables_in_school |
+----------------------+
| student1 |
+----------------------+
1 row in set (0.00 sec)
mysql> select * from student1; //查询表中所有字段的值
Empty set (0.00 sec)
mysql> select name,age from student1; //查询表中指定字段的值
Empty set (0.00 sec)
6.查看建表详情:
show create table 表名 \G
mysql> show create table product\G;
*************************** 1. row ***************************
Table: product
Create Table: CREATE TABLE `product` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '表主键',
`pid` int(10) unsigned NOT NULL COMMENT '产品ID',
`price` decimal(15,2) NOT NULL COMMENT '单价',
`num` int(11) NOT NULL COMMENT '购买数量',
`person` varchar(255) NOT NULL COMMENT '客户姓名',
`atime` int(10) unsigned NOT NULL COMMENT '下单时间',
`utime` int(10) unsigned NOT NULL COMMENT '修改时间',
`isdel` tinyint(4) NOT NULL DEFAULT '0' COMMENT '用户状态标记',
`year` smallint(5) unsigned NOT NULL COMMENT '年',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
删除表:
drop table 表名;
删数据 :
mysql> delete from mysql.user where id="22" ;
修改表:
alter 改表名 添加和删除 字段,修改 字段属性, 添加删除索引/视图/存储过程等…
DML : 对表的操作。
查询表中的数据:
select * from 数据库名.表名
select name,age from school.student1;
清空表中记录:
delete from 表名;
如果有哪些错误的地方,请帮忙指出来,欢迎大家评论。一起学习进步~
我的QQ:2072326799