MySQL数据库的入门基本操作

MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

SQL语言共分为四大类:

  • 数据查询语言DQL

SELECT <字段名表> FROM <表或视图名> WHERE <查询条件>

  • 数据操纵语言DML

<1> 插入:INSERT <2> 更新:UPDATE <3> 删除:DELETE

  • 数据定义语言DDL

用来创建数据库中的各种对象-----表、视图、索引、同义词、聚簇等
CREATE TABLE表/VIEW视图/INDEX索引/SYN同义词/CLUSTER簇
DDL操作是隐性提交的!不能rollback

  • 数据控制语言DCL

数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制
数据库操纵事务发生的时间及效果,对数据库实行监视等。如:

  1. GRANT:授权。
  2. ROLLBACK [WORK] TO [SAVEPOINT]:回退到某一点。
    回滚—ROLLBACK
    回滚命令使数据库状态回到上次最后提交的状态。其格式为:
    SQL>ROLLBACK;
  3. COMMIT [WORK]:提交。
# 进入
mysql -u root -p
# 退出
exit
# 查看数据库
show databases;
# 创建数据库
CREATE DATABASE dataname;
# 删除数据库
drop database dataname;
# 使用数据库
use dataname;

数值类型
这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。
日期和时间类型
表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。
字符串类型
字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。

# 创建数据表
# CREATE TABLE table_name (column_name column_type);
CREATE TABLE IF NOT EXISTS `runoob_tbl`(
   `runoob_id` INT UNSIGNED AUTO_INCREMENT,
   `runoob_title` VARCHAR(100) NOT NULL);
# 删除数据表
DROP TABLE table_name;
# 插入数据
# 如果数据是字符型,必须使用单引号或者双引号,如:"value"
INSERT INTO table_name ( field1, field2,...fieldN )
                       VALUES
                       ( value1, value2,...valueN );
# 读取数据表
select * from table_name;
# 查询数据
SELECT column_name,column_name
FROM table_name
[WHERE condition1 [AND [OR]] condition2.....
[LIMIT N][ OFFSET M]
# 查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
# SELECT 命令可以读取一条或者多条记录。
# 你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
# 你可以使用 WHERE 语句来包含任何条件。
# 你可以使用 LIMIT 属性来设定返回的记录数。
# 你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。

# 你可以在 WHERE 子句中指定任何条件。你可以使用 AND 或者 OR 指定一个或多个条件。
# WHERE 子句也可以运用于 SQL 的 DELETE 或者 UPDATE 命令。
# WHERE 子句类似于程序语言中的 if 条件,根据 MySQL 表中的字段值来读取指定的数据。
# 可用于 WHERE 子句中的操作符列表,=、!=、>、<、>=、<=
# LIKE 子句
SELECT field1, field2,...fieldN 
FROM table_name
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
# LIKE 通常与 % 一同使用,类似于一个元字符的搜索
# 你可以在 DELETE 或 UPDATE 命令中使用 WHERE...LIKE 子句来指定条件。
# UPDATE 更新数据
UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]
# DELETE删除记录
DELETE FROM table_name [WHERE Clause]
# UNION 操作符
# UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
UNION [ALL | DISTINCT]
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];
# DISTINCT: 可选,删除结果集中重复的数据。默认为DISTINCT
# ALL: 可选,返回所有结果集,包含重复数据。
# 排序ORDER BY
# 你可以使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认升序排列
# SELECT * from runoob_tbl ORDER BY submission_date DESC;
SELECT field1, field2,...fieldN FROM table_name1, table_name2...
ORDER BY field1 [ASC [DESC][默认 ASC]], [field2...] [ASC [DESC][默认 ASC]]
# 分组GROUNP BY
#GROUP BY 语句根据一个或多个列对结果集进行分组。在分组的列上我们可以使用 COUNT, SUM, AVG等函数。
SELECT name, COUNT(*) as singin_count FROM  employee_tbl GROUP BY name;
# 连接
# INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
# LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
# RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a INNER JOIN tcount_tbl b ON a.runoob_author = b.runoob_author;

SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a LEFT JOIN tcount_tbl b ON a.runoob_author = b.runoob_author;

SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a RIGHT JOIN tcount_tbl b ON a.runoob_author = b.runoob_author;
# NULL值处理
# 查找数据表中 runoob_test_tbl 列是否为 NULL,必须使用 IS NULL 和 IS NOT NULL,
SELECT * FROM runoob_test_tbl WHERE runoob_count IS NULL;
SELECT * from runoob_test_tbl WHERE runoob_count IS NOT NULL;
# ALTER命令
# 修改数据表名或者修改数据表字段时,使用到MySQL ALTER命令。

# 删除列
ALTER TABLE testalter_tbl  DROP i;
# 添加列
ALTER TABLE testalter_tbl ADD i INT;
# 查看列
SHOW COLUMNS FROM testalter_tbl;
# 修改字段类型和名称
ALTER TABLE testalter_tbl MODIFY c CHAR(10);
# 设置字段默认值
ALTER TABLE testalter_tbl MODIFY j BIGINT NOT NULL DEFAULT 100;
# 修改字段默认值
ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;
# 修改表名
ALTER TABLE testalter_tbl RENAME TO alter_tbl;
# 索引
# CREATE INDEX indexName ON table_name (column_name);
# 创建索引
CREATE INDEX 索引名ON 表名 ( 字段1,[字段2,……] );
# 删除索引
ALTER INDEX 索引名 REBUILD;
# 显示索引
# 添加 \G 来格式化输出信息
SHOW INDEX FROM table_name; \G
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值