mysql 学习记录
命令语句:
mysql -u root -p
输入密码
1、显示所有的数据库
show DATABASES
实现结果:
2、创建数据库
CREATE DATABASE IF NOT EXISTS demo DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
结果:
4、删除数据库
drop database demo;
5、切换到某个数据库
use yiibaidb
6、创建表
create table if not exists user(user_id INT NOT NULL AUTO_INCREMENT, user_name varchar(20) not null,PRIMARY KEY (user_id )) ENGINE=InnoDB DEFAULT CHARSET=utf8;
代码结果展示:
7、删除表
drop table user
8、插入数据
9、查看表的所有数据
select * from user
SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]
- 查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
- SELECT 命令可以读取一条或者多条记录。
- 你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
- 你可以使用 WHERE 语句来包含任何条件。
- 你可以使用 LIMIT 属性来设定返回的记录数。
- 你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。
(1) select use_name from user;
(2) select user_name from user limit 3 offset 1
(10)更新表的数据
UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]
- 你可以同时更新一个或多个字段。
- 你可以在 WHERE 子句中指定任何条件。
- 你可以在一个单独表中同时更新数据。
update user set user_name='玛丽' where user_id=3
11、删除表的数据
DELETE FROM table_name [WHERE Clause]
- 如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。
- 你可以在 WHERE 子句中指定任何条件
- 您可以在单个表中一次性删除记录。
当你想删除数据表中指定的记录时 WHERE 子句是非常有用的。
12、 mysql like
WHERE 子句中可以使用等号 = 来设定获取数据的条件,如 "runoob_author = 'RUNOOB.COM'"。
但是有时候我们需要获取 runoob_author 字段含有 "COM" 字符的所有记录,这时我们就需要在 WHERE 子句中使用 SQL LIKE 子句。
SQL LIKE 子句中使用百分号 %字符来表示任意字符,类似于UNIX或正则表达式中的星号 *。
如果没有使用百分号 %, LIKE 子句与等号 = 的效果是一样的。
语法
SELECT field1, field2,...fieldN
FROM table_name
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
- 你可以在 WHERE 子句中指定任何条件。
- 你可以在 WHERE 子句中使用LIKE子句。
- 你可以使用LIKE子句代替等号 =。
- LIKE 通常与 % 一同使用,类似于一个元字符的搜索。
- 你可以使用 AND 或者 OR 指定一个或多个条件。
- 你可以在 DELETE 或 UPDATE 命令中使用 WHERE...LIKE 子句来指定条件
(1)select * from user where user_name like '丽丽%'
(2)select * from user where user_name like '丽丽%' or user_name='康康';
13、sql union
(union)
select country from websites union select country from apps order by country;
(2)union all
select country from websites union all select country from apps order by country;
(14) 排序
以下是 SQL SELECT 语句使用 ORDER BY 子句将查询数据排序后再返回数据:
SELECT field1, field2,...fieldN table_name1, table_name2...
ORDER BY field1, [field2...] [ASC [DESC]]
- 你可以使用任何字段来作为排序的条件,从而返回排序后的查询结果。
- 你可以设定多个字段来排序。
- 你可以使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列。
- 你可以添加 WHERE...LIKE 子句来设置条件。
(15)两个表的链接使用
inner join 取并集
SELECT a.id, a.url, b.app_name FROM websites a INNER JOIN apps b ON a.url = b.url;
SELECT a.id, a.url, b.app_name FROM websites a, apps b WHERE a.url = b.url;
left join
(2)
SELECT a.id, a.url, b.app_name FROM websites a left join apps b ON a.url = b.url;
(3) right join
16、mysql null
mysql> SELECT * FROM runoob_test_tbl WHERE runoob_count IS NULL;
mysql> SELECT * from runoob_test_tbl WHERE runoob_count IS NOT NULL;
17、mysql正则表达式
mysql> SELECT name FROM person_tbl WHERE name REGEXP '^st';
mysql> SELECT name FROM person_tbl WHERE name REGEXP 'ok$'
18、