第一章 数据库和SQL

参考书籍:https://book.douban.com/subject/27055712/

1、法则

  • 关系型数据库必须以行为单位进行读写
  • 一个单元格只能输入一个数据
  • 学会标准的SQL就可以在各种RDBMS中书写SQL语句了

2、SQL书写规则

  • SQL要以;结尾,关键字大写,表名的首字母大写,其余(列名等)小写
  • 关键字不区分大小写(插入到表中的数据是区分大小写的)
  • 使用单引号标识字符串和日期常数;数字常熟不需要加注单引号
  • 单词之间要使用半角空格或者换行进行分隔
  • 数据库名称、表名和列表等可以使用以下三种字符:半角英文字母、半角数字、下划线_;名称必须以半角英文字母作为开头;名称不能重复。
  • 删除了的表不能恢复,执行DROP TABLE语句之前务必仔细检查
  • 表定义变更后无法恢复,执行ALTER TABLE语句之前务必仔细检查

3、权限管理

MySQL 的账户信息保存在 mysql 这个数据库中。

USE mysql;
SELECT user FROM user;

创建账户

新创建的账户没有任何权限。

CREATE USER myuser IDENTIFIED BY 'mypassword';

修改账户名

RENAME myuser TO newuser;

删除账户

DROP USER myuser;

查看权限

SHOW GRANTS FOR myuser;

授予权限

账户用 username@host 的形式定义,username@% 使用的是默认主机名。

GRANT SELECT, INSERT ON mydatabase.* TO myuser;

删除权限

GRANT 和 REVOKE 可在几个层次上控制访问权限:

  • 整个服务器,使用 GRANT ALL 和 REVOKE ALL;
  • 整个数据库,使用 ON database.*;
  • 特定的表,使用 ON database.table;
  • 特定的列;
  • 特定的存储过程。
REVOKE SELECT, INSERT ON mydatabase.* FROM myuser;

更改密码

必须使用 Password() 函数

SET PASSWROD FOR myuser = Password('new_password');

4、SQL常用命令

修改MySQL提示符:

mysql -uroot -proot --prompt 提示符 # 连接客户端时通过参数指定
prompt 提示符 # 连接客户端之后,通过prompt指定
参数描述
\D完整的日期
\d当前数据库
\h服务器名称
\u当前用户
  • 显示当前服务器版本:SELECT VERSION();

  • 显示当前日期:SELECT NOW();

  • 显示当前用户:SELECT USER();

  • 数据库创建与使用:

    CREATE DATABASE test;
    USE test;
    
  • 创建数据库

CREATE {DATEBASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name
  • 查看当前服务器下的数据表列表
SHOW {DATABASE | SCHEMAS} [LIKE "pattern" | WHERE expr]
  • 查看警告信息
SHOW WARNINGS;
  • 查看数据库创建信息
SHOW CREATE  DATABASE t1;
  • 修改数据库
ALTER {DATABASE | SCHEMA} [db_name] [DEFAULT] CHARACTER SET [=] charset_name
  • 删除数据库
DROP {DATABASE |SCHEMA} [IF EXISTS] db_name;
  • 注释
SELECT *
FROM mytable; -- 注释
/* 注释1
   注释2 */

5、表的创建、修改和插入

创建表


CREATE TABLE mytable (
  id INT NOT NULL AUTO_INCREMENT,
  col1 INT NOT NULL DEFAULT 1,
  col2 VARCHAR(45) NULL,
  col3 DATE NULL,+
  PRIMARY KEY (`id`)); --设定主键

修改表

添加列

ALTER TABLE mytable
ADD col CHAR(20);

删除列

ALTER TABLE mytable
DROP COLUMN col;

删除表

DROP TABLE mytable;

修改表名

ALTER TABLE <原表名> to <新表名>

插入表数据

普通插入,不指定列则要求全部要插入

START TRANSACTION; 
INSERT INTO mytable(col1, col2)
VALUES(val1, val2);
...
COMMIT;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值