Mysql 数据库表
- 创建数据库表需要:表名,表字段名,自定每个表字段
- 创建Mysql数据库表sql通用语法:
CREATE TABLE table_name (column_name column_type); - 在mytet中创建mytest数据表
show tables; 查看当前数据库中所有数据表
- MySQL命令终止符为分号
(;) 。
注意
- 如果不想字段为NULL可以设置字段的属性为NOT NULL,在操作数据库时输入该字段的数据为NULL,就会报错
- AUTO_INCREMENT 定义列为自增的属性,一般用于主键,数值会自动加一
- PRIMARY KEY关键字用于定义列为主键。 可以使用多列来定义主键,列间以逗号分隔。
删除数据表
- 删除数据表命名执行后,所有数据都会消失,此时需要注意
DROP TABLE tabele_name;
插入数据
- mysql使用INSERT INTO 插入数据
- 插入数据语法如下:
- 如果数据是字符型,必须使用单引号或者双引号,如"value"
INSERT INTO table_name ( field1, field2,...fieldN )
VALUES
( value1, value2,...valueN );
使命命令行插入数据
mysql> show tables;
+------------------+
| Tables_in_mytest |
+------------------+
| mytest |
+------------------+
1 row in set (0.00 sec)
mysql> INSERT INTO mytest
-> (title,author,date)
-> VALUES
-> ("ryx","ryx",NOW());
Query OK, 1 row affected, 2 warnings (0.01 sec)
- 使用箭头标记(->)不是SQL语句的一部分,它仅仅表示一个新行,
- 如果一条sql语句太长,可以使用回车键创建一个新行来编写SQL语句,SQL语句的命令结束符为分号(;)
- 在插入数据时,我们并没有插入id的数据,因为在创建表的时候,我们已经设置id为自增加属性,所以该字段会自动递增而不需要为我们去设置
- NOW()是一个mysql函数,返回日期和时间
MySQL查询数据
- mysql数据库使用sql select语句查询数据
- select语法
SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[OFFSET M ][LIMIT N]
- 查询语句中可以使用一个或多个表,表之间使用逗号(,)分割
- SELECT 命令可以读取一条或者多条记录。
- 可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
- 可以使用 WHERE 语句来包含任何条件。
- 可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。
- 可以使用 LIMIT 属性来设定返回的记录数
mysql> show tables;
+------------------+
| Tables_in_mytest |
+------------------+
| mytest |
+------------------+
1 row in set (0.00 sec)
mysql> INSERT INTO mytest
-> (title,author,date)
-> VALUES
-> ("ryx","ryx",NOW());
Query OK, 1 row affected, 2 warnings (0.01 sec)
mysql> select * from mytest;
+----+-------+--------+------------+
| id | title | author | date |
+----+-------+--------+------------+
| 0 | ryx | ryx | 2021-09-18 |
+----+-------+--------+------------+
1 row in set (0.00 sec)
WHRER 子句
- 使用select语句读取数据,返回一个结果集
- 当需要有条件的从表中选取数据时,可以将WHERE子句添加到SELECT语句中
- SQL SELECT 语句使用 WHERE 子句从数据表中读取数据的通用语法:
SELECT field1, field2,...fieldN FROM table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
- 查询语句中可以使用一个或多个表,表之间使用(,)号分隔,并使用WHERE语句来设定查询条件
- 在where子句中可以指定任何条件
- 还可以使用AND或OR指定一个或多个条件
- WHERE子句可以使用SQL的DELETE 或者 UPDATE命令
- WHERE 子句类似于程序语言中的if条件,根据 MySQL 表中的字段值来读取指定的数据。
可以用在WHERE子句中的操作符列表:A=10,B=20
- 如果使用主键作为where子句的条件查询性能能号
- 如果给定的条件在表中没有任何匹配的记录,那么查询不会返回任何数据
查询mytest表中author字段值为ryx的所有记录
mysql> select * from mytest where author="ryx";
+----+-------+--------+------------+
| id | title | author | date |
+----+-------+--------+------------+
| 0 | ryx | ryx | 2021-09-18 |
+----+-------+--------+------------+
1 row in set (0.00 sec)
mysql>
- 默认情况下,mysql的where子句的字符串是不区分大小写的,除了是使用LIKE比较字符串
- 可以时使用BIANARY关键字去设定WHERE子句的字符串比较是区分大小写的
mysql> select * from mytest where BINARY author="ryx";
+----+-------+--------+------------+
| id | title | author | date |
+----+-------+--------+------------+
| 0 | ryx | ryx | 2021-09-18 |
+----+-------+--------+------------+
1 row in set (0.00 sec)
mysql> select * from mytest where BINARY author="Ryx";
Empty set (0.00 sec)
mysql>
UPDATE 查询
- 如果需要修改或者更新mysql中的数据,可以使用sql UPDATE命令去操作
- UPDATE查询的语法:
UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]
- 可以同时更新一个或多个字段
- 可以在WHERE子句中指定任何条件
- 可以在一个单独表中同时更新数据
- 可以更行数据库表中指定行的数据
指定更新mytest表中 id =1 的 title字段信息
mysql> UPDATE mytest
-> SET title = "mytest"
-> WHERE id = 1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from mytest;
+----+--------+--------+------------+
| id | title | author | date |
+----+--------+--------+------------+
| 1 | mytest | ryx | 2021-09-18 |
+----+--------+--------+------------+
1 row in set (0.00 sec)
mysql>
|