数据库的五个基本单位

1.数据库服务器
2.数据库
3.数据表
4.数据字段
5.数据行

一、数据库的操作

示例:

show dababases;              # 列出所有的数据库 
use python;                  # 选中数据库python 
show tables;                 # 查看当前数据库里有哪些数据表 
drop database python;        # 删除指定数据库python

二、数据表的操作

1、创建数据表

create table 表名(字段名 字段类型(长度))engine=Innodb default charset=utf8;
engine 是mysql引擎,默认为innodb
charset 是mysql字符集 mysql没有utf-8 只有utf8

示例:

mysql> create table article(id int(11));         #  采用默认引擎  默认的字符集 
Query OK, 0 rows affected (0.03 sec)

mysql> create table book(id int(11))default charset=utf8;   #  指定字符集 
Query OK, 0 rows affected (0.02 sec)

mysql> create table test(id int(11))engine=innodb default charset=utf8; #  指定引擎 指定字符集 
Query OK, 0 rows affected (0.04 sec)

2、删除数据表

drop table 表名;

3、修改数据表名

alter table 旧表名 rename 新表名;

4、查看表结构

desc 表名;

表结构从左向右依次为:字段名、字段类型、是否为空、是否主键 、是否有默认值、其它信息

+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id    | int(11) | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
1 row in set (0.00 sec)

show create table 表名; # 查看创建表的语句
show create table 表名\G # 以最佳的阅读体验进行阅读

三、数据字段的操作(增、删、改)

alert table 表名

1、增加表字段 add

(1) alter table 表名 add column 字段名 类型; #column 可加 可不加

示例:

mysql> alter table article add username varchar(50);
mysql> alter table article add username varchar(50) first;
mysql> alter table article add username varchar(50) after age;
mysql> alter table article add column password varchar(50);

(2)调整表字段增加的顺序(默认是把字段加到末尾处) 关键字: first 、after

示例:

mysql> alter table article add sex int first; # 添加字段到最开头的位置
mysql> alter table article add title varchar(64) after username; # 添加新字段到指定字段的后面
2、删除表字段 drop

示例:

mysql> alter table article drop column sex;
mysql> alter table article drop age;  #column可加 可不加 
3、修改表字段类型 modify

alter table 表名 modify 字段名 字段类型(长度);

mysql> alter table article modify id varchar(50);
mysql> alter table article modify password after name;
mysql> alter table article modify password varchar(64) first;

4、修改表字段名字 change

mysql> alter table article change username name varchar(30);
mysql> alter table article change username name char(30) first;
mysql> alter table article change username name varchar(30) after age;

总结:

modify(修改表字段类型) 、change (修改表字段名字) 、add (添加表字段) 这三个针对表字段的操作都可以跟上 firstafter关键字来指定字段的顺序。

四、数据行的操作(增、删、改、查)

  • 增 insert
  • 删 delete
  • 改 update
  • 查 select

1、增加数据

方法一:(完整增加)

insert into 表名 values(值1,值2,…值n) #表结构有多少个字段 values 你就要写多少个字段

方法二:(根据指定的字段增加)

insert into 表名(字段1,字段2,字段3,字段4) values(值1,值2,值3,值4) 有些字段为空 或者有默认值可以不用写 只需要插入要求的字段就好了

示例:

mysql> desc articles;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| age      | int(11)     | YES  |     | NULL    |       |
| password | varchar(64) | YES  |     | NULL    |       |
| id       | varchar(50) | YES  |     | NULL    |       |
| sex      | int(11)     | YES  |     | NULL    |       |
| name     | varchar(30) | YES  |     | NULL    |       |
| title    | varchar(64) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

mysql> insert into articles values(18,'123456',1,1,'jiadong','武汉大东哥');
Query OK, 1 row affected (0.00 sec)

mysql> insert into articles(name,password,title,age) values('liangzai','654321','千锋靓仔',19);
Query OK, 1 row affected (0.00 sec)

mysql> select * from articles;
+------+----------+------+------+----------+-----------------+
| age  | password | id   | sex  | name     | title           |
+------+----------+------+------+----------+-----------------+
|   18 | 123456   | 1    |    1 | jiadong  | 武汉大东哥      |
|   19 | 654321   | NULL | NULL | liangzai | 千锋靓仔        |
+------+----------+------+------+----------+-----------------+
2 rows in set (0.00 sec)

以上是插入一条数据 ,接下来 插入多条数据(多个values(字段对应的值)之间用逗号隔开):

mysql> insert into articles values(20,'123456789',3,0,'weiming','武汉大明.哥'),(20,'123456789',3,0,'weiming','武汉大明.哥'),(20,'123456789',3,0,'weiming','武汉大明.哥');
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0

2、删除数据

delete from 表名;#删除整张表的数据
delete from 表名 where 条件; #删除指定条件的数据
truncate table 表名; #也是删除整张表的数据

mysql> delete from articles where age=25;    #删除 age为25的数据行

delete和truncate的区别:
delete from 表名; 清空数据以后 再次插入数据 id 从原来的id 往后顺延
truncate table 表名; 清空数据以后 再次插入数据 id 从1开始

3、修改数据

update 表名 set 字段名1=值1,字段名2=值2 where 条件;

mysql> update articles set age=19,name='二十不惑' where id=1;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from articles;
+----+------+----------+------+--------------+----------------------------------+
| id | age  | password | sex  | name         | title                            |
+----+------+----------+------+--------------+----------------------------------+
|  1 |   19 | 123456   |    1 | 二十不惑     | 我不是出色的电焊工               |
|  2 |   18 | 123456   |    1 | kangbazi     | 没有点到你                       |
|  3 |   18 | 123456   |    1 | kangbazi     | ..有把你我的心焊在一起           |
+----+------+----------+------+--------------+----------------------------------+
3 rows in set (0.00 sec)

4、查找数据

select 你要查询的字段名 from 表名 where 条件;
select * from 表名; #显示所有的 字段 以及所有的数据行

示例:

mysql> select name,title from articles where id>=1;
+--------------+----------------------------------+
| name         | title                            |
+--------------+----------------------------------+
| 二十不惑     | 我不是出色的电焊工               |
| kangbazi     | 没有点到你                       |
| kangbazi     | ..有把你我的心焊在一起           |
+--------------+----------------------------------+
3 rows in set (0.00 sec)

mysql> select name as 姓名,title as 题目 from articles where id>=1;
+--------------+----------------------------------+
| 姓名         | 题目                             |
+--------------+----------------------------------+
| 二十不惑     | 我不是出色的电焊工               |
| kangbazi     | 没有点到你                       |
| kangbazi     | ..有把你我的心焊在一起           |
+--------------+----------------------------------+
3 rows in set (0.00 sec)

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐