1,建库,建表
1.创建一个库
CREATE DATABASE 数据库名称
2.创建一个表
这样做就可以创建一个数据库中的表:
CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
…
)
实例
create table students(
id int unsigned primary key auto_increment not null,
name varchar(20) default '',
age tinyint unsigned default 0,
height decimal(5,2),
gender enum('男','⼥','⼈妖','保密'),
cls_id int unsigned default 0
)`
2.增删改查语法,需要案例
1.1插入数据
向表中插入一条数据的 SQL 语法如下:
INSERT INTO [TABLE_NAME] (column1, column2, column3,...columnN)
VALUES (value1, value2, value3,...valueN);
先创建这么一张 person 表,使用如下 SQL:
create table person(
id int primary key,
name varchar(16) not null,
age int,
phone varchar(11),
address varchar(256)
);
接着,我们插入一条数据:
insert into person(id,name,age,phone,address)
values (1,'yang',22,'123232323','中国上海');
当你查询 person 表,会看到
+----+------+------+-----------+--------------+
| id | name | age | phone | address |
+----+------+------+-----------+--------------+
| 1 | yang | 22 | 123232323 | 中国上海 |
+----+------+------+-----------+--------------+
2.2删除数据
我们使用 DELETE 语句对标数据进行删除,基本格式语法如下:
DELETE FROM [table_name]
WHERE [condition];
同样,不追加 where 子句做条件筛选会导致整张表的数据丢失。例如我们删除 id 为 1 的那条数据记录。
delete from person where id = 1;
2.3修改数据
SQL UPDATE 语句用于修改表中现有的记录。基本格式如下:
UPDATE [table_name]
SET column1 = value1, column2 = value2...., columnN = valueN
举个例子,这是 person 表现在的数据情况:
+----+------+------+-----------+--------------+
| id | name | age | phone | address |
+----+------+------+-----------+--------------+
| 1 | yang | 22 | 123232323 | 中国上海 |
| 2 | cao | NULL | NULL | NULL |
+----+------+------+-----------+--------------+
我们执行:
update person set address='浙江杭州';
//再来看 person 表:
+----+------+------+-----------+--------------+
| id | name | age | phone | address |
+----+------+------+-----------+--------------+
| 1 | yang | 22 | 123232323 | 浙江杭州 |
| 2 | cao | NULL | NULL | 浙江杭州 |
+----+------+------+-----------+--------------+
2.4查询数据
基本的查询语法如下:
SELECT column1, column2, columnN FROM table_name;
如果需要查询一条记录中的所有的字段,可以用符号「*」替代全体,例如:
SELECT * FROM person;
可查询出 person 表所有的记录:
+----+-------+------+-----------+--------------+
| id | name | age | phone | address |
+----+-------+------+-----------+--------------+
| 1 | yang | 22 | 231232132 | 中国上海 |
| 2 | cao | NULL | NULL | 浙江杭州 |
| 3 | li | 23 | 34567894 | 江苏南京 |
| 4 | huang | 33 | 34567894 | 湖北武汉 |
| 5 | zhang | 30 | 4567890 | 中国北京 |
+----+-------+------+-----------+--------------+
3.表关联查询,需要案例
3.1表关联查询(两表,多表)
建网站表websites
建日志表access_log
内连接
左连接 left join
右连接 right join
全连接
MySQL Full Join的实现因为MySQL不支持FULL JOIN,下面是替代方法
left join + union(可去除重复数据)+ right join
select * from A left join B on A.id = B.id (where 条件)union
select * from A right join B on A.id = B.id (where条件);