MySQL数据库基础知识回顾
数据库的创建和删除
-创建数据库:
CREATE DATABSAE 数据库表名;
- 删除数据库(drop命令):
drop database 数据库表名; - 从命令提示窗口选择MySQL数据库:
use 数据库表名;(执行命令语句成功之后,在后续的操作中都会在此数据库中执行)
数据库表的创建和删除
- 创建数据表
通用语法: CAEATE TABLE table_name(column_name column_type);
通过命令提示符创建表,以下为在数据库MYWGY中创建数据库表mywgy:
CREATE TABLE IF NOT EXISTS `mywgy`(
`mywgy_id` INT UNSIGNED AUTO_INCREMENT,
`mywgy_name` VARCHAR(30) NOT NULL,
`mywgy_brithday` DATE,
PRIMARY KEY ( `mywgy_id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
**注意**:MySQL命令终止符为分号**;**
*实例解析:*
NOT NULL 属性,当输入为NULL时,会报错;
AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1;
PRIMARY_KEY关键字用于定义列为主键,可以定义多列主键,列间以逗号分隔;
- 删除数据表
通用语法:DROP TABLE table_name;
命令提示窗口中删除数据表,实例如下:
mysql> use MYWGY;
Database changed
mysql> DROP TABLE mywgy;
Query OK, 0 rows affected (0.8 sec)
mysql>
-MYSQL插入数据
MYSQL表中使用INSERT INTO SQL语句插入数据
语法:
INSERT INTO table_name(field1,field2,...fieldN)
VALUES
(values,values,...valuesN);
如果数据是字符型,必须使用单引号或双引号,如“values”。
通过命令提示窗口插入数据
在mywgy表中插入一条数据,示例如下:
mysql> use MYWGY;
Database changed
mysql> INSERT INTO mywgy
-> (mywgy_name, mywgy_brithday)
-> VALUES
-> ("王小铭", “2002-09-21”);
Query OK, 1 rows affected, 1 warnings (0.01 sec)
注意: 使用箭头标记 -> 不是 SQL 语句的一部分,它仅仅表示一个新行,如果一条SQL语句太长,我们可以通过回车键来创建一个新行来编写 SQL 语句,SQL 语句的命令结束符为分号 ;。
在以上实例中,我们并没有提供 mywgy_id 的数据,因为该字段我们在创建表的时候已经设置它为 AUTO_INCREMENT(自动增加) 属性。 所以,该字段会自动递增而不需要我们去设置。
- MySQL查询数据
MySQL数据库使用SELECT语句查询数据
语法:
SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]
查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
SELECT 命令可以读取一条或者多条记录。
你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
你可以使用 WHERE 语句来包含任何条件。
你可以使用 LIMIT 属性来设定返回的记录数。
你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。
命令提示窗口查询数据,示例如下:
读取数据表:
select * from mywgy;
MySQL WHERE子句
用于select语句查询数据时,有条件地从表中选取数据,可将WHERE子句添加到SELECT语句中。
语法
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 表中的字段值来读取指定的数据。
操作符 | 描述 |
---|---|
= | 检测两个值是否相等,如果相等返回true。 (A = B) 返回false |
<>, != | 不等于,检测两个值是否相等,如果不相等返回true。(A != B) 返回 true。 |
> | 大于号,检测左边的值是否大于右边的值, 如果左边的值大于右边的值返回true。(A > B) 返回false。 |
< | 小于号,检测左边的值是否小于右边的值, 如果左边的值小于右边的值返回true。(A < B) 返回 true |
>= | 大于等于号,检测左边的值是否大于或等于右边的值, 如果左边的值大于或等于右边的值返回true。(A >= B) 返回false。 |
<= | 小于等于号,检测左边的值是否小于或等于右边的值, 如果左边的值小于或等于右边的值返回true。(A <= B) 返回 true。 |
使用主键来作为 WHERE 子句的条件查询是非常快速的。
如果给定的条件在表中没有任何匹配的记录,那么查询不会返回任何数据。
命令提示符中读取数据
我们将在SQL SELECT语句使用WHERE子句来读取MySQL数据表 mywgy 中的数据:
实例
SQL SELECT WHERE子句
SELECT * from mywgy WHERE mywgy_id=1001;
将以此查询条件搜索出结果。
注意:MySQL 的 WHERE 子句的字符串比较是不区分大小写的。 你可以使用 BINARY 关键字来设定 WHERE 子句的字符串比较是区分大小写的。
如下实例:
mysql> SELECT * from mywgy WHERE BINARY mywgy_name='LUOXG';
MySQL UPDATE更新
若需修改或更新MySQL中的数据,可以使用SQL UPDATE命令来操作。
语法
UPDATE table_name SET field1=new-value1,field2=new-value2
[WHERE Clause]
可以同时更新一个或多个字段。
可以在 WHERE 子句中指定任何条件。
可以在一个单独表中同时更新数据。
当你需要更新数据表中指定行的数据时 WHERE 子句是非常有用的。
命令提示符更新数据
SQL UPDATE语句:
mysql> UPDATE mywgy SET mywgy_name='陈晓' WHERE mywgy_id=10;
MySQL DELETE语句
可以使用 SQL 的 DELETE FROM 命令来删除 MySQL 数据表中的记录。
语法
DELETE FROM table_name [WHERE Clause]
如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。
可以在 WHERE 子句中指定任何条件
您可以在单个表中一次性删除记录。
命令行中删除数据,实例如下:
DELETE 语句:
mysql> use MYWGY;
Database changed
mysql> DELETE FROM mywgy WHERE mywgy_id=10;
MySQL LIKE子句
WHERE语句中可使用LIKE子句进行记录的匹配,如mywgy_name中查询含有“小”的记录。
SQL LIKE 子句中使用百分号 %字符来表示任意字符。
如果没有使用百分号 %, LIKE 子句与等号 = 的效果是一样的。
语法
SELECT field1,field2,....fieldN
FROM table_name
WHERE field1 LIKE condition1[AND [OR]] field2='who'
你可以在 WHERE 子句中指定任何条件。
你可以在 WHERE 子句中使用LIKE子句。
你可以使用LIKE子句代替等号 =。
LIKE 通常与 % 一同使用,类似于一个元字符的搜索。
你可以使用 AND 或者 OR 指定一个或多个条件。
你可以在 DELETE 或 UPDATE 命令中使用 WHERE…LIKE 子句来指定条件。
命令提示符中使用LIKE子句
mysql> use MYWGY;
Database changed
mysql> SELECT * from mywgy WHERE mywgy_name LIKE '%小';