SQL——结构化查询语言(Structured Query Language)
1> SQL语言不区分大小写,建议关键字用大写,但是字符串常量区分大小写
2> SQL注释:/**/多行注释
--单行注释
MySQL注释:#
3> 功能:列出MySQL服务器主机上的数据库
SHOW DATABASES[LIKE wild];
4> 功能:用给定的名字创建一个数据库
语法:CREATE DATABASE[IF NO EXISTS] 数据库名字 创建之后要刷新才能在列表中看见新建立的数据库
create database spring_user default character set utf8 collate utf8_general_ci;
5> 功能:删除数据库中的所有表和数据
语法:DROP DATABASE[IF NO EXISTS] 数据库名字
6> 功能:把指定数据库作为默认(当前)数据库使用,用于后续语句
语法:USE 数据库名字
7> 数据库对象的命名规则:
i>必须以字母开头
ii>可包括数字和三个特殊字符(# _ $)
iii>不要使用MySQL的保留字
iv>同一个schema下的对象不能同名
8> 建表语句:CREATE TABLE [schema] 表的名字 (column datatype[DEFAULT expr],...) ENGINE = 存储机制
数据表的每行称为一条记录(record),每一列称为一个字段(field),主键列:唯一能够识别每条记录的列
CREATE TABLE IF NOT EXISTS `t_user` (`username` varchar(64) NOT NULL,`password` varchar(11) NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;
9> MySQL支持的列类型
i>数值类型
ii>日期/时间类型
iii>字符串(字符)类型
整数:int或者integer
浮点:double
字符:char、varchar、blob、text
10> 语法:SHOW TABLES [FROM 数据库名字][LIKE wild]
功能:显示当前数据库中已有的数据表的信息
11> 语法:CREATE TABLE 表的名字(
列名 列类型,
列名 列类型
);
功能:在当前数据库中创建一张表,列名之间用逗号隔开,最后一列不需要逗号
栗子:
#创建一个部门表叫做tb_dept
#部门编号id,整形
#primary key 主键
#部门名称 name,字符,最多只能储存18个字符
#描述description,字符,最多只能存储100个字符
CREATE TABLE tb_dept(
id INT PRIMARY KEY AUTO INCREMENT,
NAME VARCHAR(18),
description VARCHAR(100)
);
12> 语法:description或者DESC 表名[列名]
功能:查看数据表中各列的信息
mysql> desc t_user;
13> 用ALTER TABLE语句修改表的结构
修改列类型 ALTER TABLE 表名 MODIFY 列名 列类型 注意:不是任何情况都可以修改,例如名字是char不能改成int
增加列 ALTER TABLE 表名 ADD 列名 列类型 注意:使用ADD子句增加字段,新的字段只能被加到整个表的最后
ALTER TABLE employees ADD gender CHAR(1);
删除列 ALTER TABLE 表名 DROP 列名 列类型
ALTER TABLE employees DROP gender CHAR(1); #mysql特有
ALTER TABLE employees DROP COLUMN gender CHAR(1); #oracle
列改名 ALTER TABLE 表名 CHANGE 旧列名 新列名 列类型
更改表名 ALTER TABLE 表名 RENAME 新表名
RENAME TABLE 表名 TO 新表名
14> 语法:DROP TABLE 表的名字
功能:删除表
15> 修改MySQL的密码
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
16> MySQL怎么取消错误的命令
1.没办法的办法,ctrl+c,完全退出
2.可以输入\c 废弃本次语句,若输入后没效果是因为未保持当前输入语句完整匹配
17> 自增id归1
TRUNCATE TABLE baike_pages;
18> 使用timestamp,并在修改的时候自动更新
将默认值设置为CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,并为NOT NULL