SQL数据库基础中的基础
1.数据库操作
0.0 提前准备
再开始操作之前,需要有数据库,如果没有安装的可以看我上一篇的内容。以下所有操作均在数据库上操作。
1.1 DDL操作
1.1.1 数据库操作
mysql> create database yyx; //创建数据库 yyx
mysql> create database if not exists yyx; //如果存在这个数据库,即先删除再创建,通常使用这个语法。
mysql> show databases; //查看所有数据库 注:database后有s
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| yyx |
+--------------------+
5 rows in set (0.01 sec)
mysql> drop database yyx; //删除名为yyx的数据库
mysql> drop database if exists yyx; //存在即删除。
mysql> show databases;//验证是否删除
mysql> use yyx; //切换到名为yyx的数据库,以下的操作均在yyx数据库中操作
1.1.2 表操作
mysql> create table yyx(id int unique,name varchar(20) not null,age int );
//创建名为yyx的表,里面设置三个字段,分别为依次字段名,数据类型,约束/是否为空,默认为空;
mysql> desc yyx; //查看表yyx的结构
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | UNI | NULL | |
| name | varchar(20) | NO | | NULL | |
| age | int(11) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
mysql> show tables; //查看当前数据库有哪些表,同理,后面需要接s,表示多表;
+---------------+
| Tables_in_yyx |
+---------------+
| yyx |
+---------------+
mysql> drop table yyx;//删除名为yyx的表
mysql> drop table if exists yyx;//同理,存在即删除;
//alter 修改表结构
mysql> alter table yyx add sex varchar(4); //给表yyx添加一个名为sex的新字段,数据类型为varchar;
mysql> desc yyx; //查看更改
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | UNI | NULL | |
| name | varchar(20) | NO | | NULL | |
| age | int(11) | YES | | NULL | |
| sex | varchar(4) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
mysql> alter table yyx add sal int first; //添加新字段且定于第一列,after则为最后一列。
mysql> desc yyx; //验证
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| sal | int(11) | YES | | NULL | |
| id | int(11) | YES | UNI | NULL | |
| name | varchar(20) | NO | | NULL | |
| age | int(11) | YES | | NULL | |
| sex | varchar(4) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
mysql> alter table yyx modify age tinyint(4); //modify 修改字段名称及类型
mysql> alter table yyx change sal tel int(20);
//change 也是修改字段名称类型大小
mysql> alter table yyx alter age set default 18; //修改表yyx age字段的默认值为18
mysql> alter table yyx alter age drop default;//删除默认值
mysql> alter table yyx engine = innoDB;//修改数据表类型
mysql> alter table yyx rename to yyxx;//修改表名
mysql> alter table yyx add index y(name,age);//添加索引y
mysql> alter table yyx add primary key name;//给name字段添加主键
mysql> alter table yyx drop sex;//删除名为sex的字段
mysql> alter table yyx drop ind