标签:引号 ddl upd .sql varchar 主键重复 hang roo lint
数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作。
根据表字段所规定的数据类型,我们可以向其中填入一条条的数据,而表中的每条数据类似类的实例对象。表中的一行一行的信息我们称之为记录。
MySQL是一个需要账户名密码登录的数据库,登陆后使用,它提供了一个默认的root账号,使用安装时设置的密码即可登录。
l SQL分类:
n 数据定义语言:简称DDL(Data Definition Language),用来定义数据库对象:数据库,表,列等。关键字:create,alter,drop等
n 数据操作语言:简称DML(Data Manipulation Language),用来对数据库中表的记录进行更新。关键字:insert,delete,update等
n 数据控制语言:简称DCL(Data Control Language),用来定义数据库的访问权限和安全级别,及创建用户。
n 数据查询语言:简称DQL(Data Query Language),用来查询数据库中表的记录。关键字:select,from,where等
l SQL语句可以单行或多行书写,以分号结尾
l 可使用空格和缩进来增强语句的可读性
l MySQL数据库的SQL语句不区分大小写,关键字建议使用大写
n 例如:SELECT * FROM user。
l 同样可以使用/**/的方式完成注释
分类 |
类型名称 |
说明 |
整数类型 |
tinyInt |
很小的整数 |
smallint |
小的整数 |
|
mediumint |
中等大小的整数 |
|
int(integer) |
普通大小的整数 |
|
小数类型 |
float |
单精度浮点数 |
double |
双精度浮点数 |
|
decimal(m,d) |
压缩严格的定点数 |
|
日期类型 |
year |
YYYY 1901~2155 |
time |
HH:MM:SS -838:59:59~838:59:59 |
|
date |
YYYY-MM-DD 1000-01-01~9999-12-3 |
|
datetime |
YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00~ 9999-12-31 23:59:59 |
|
timestamp |
YYYY-MM-DD HH:MM:SS 1970~01~01 00:00:01 UTC~2038-01-19 03:14:07UTC |
创建数据库:
格式:
* create database 数据库名;
* create database 数据库名 character set 字符集;
查看数据库
show databases;
查看某个数据库定义的信息
show create database 数据库名
删除数据库
drop database 数据库名称
例如:
###数据库操作
# 创建数据库 (默认字符集: UTF-8 , 此编码为安装时设置)
CREATE DATABASE data_1;
CREATE DATABASE data_2 CHARACTER SET gbk;
#显示所有数据
SHOW DATABASE;
#显示数据库的创建语句
SHOW CREATE DATABASE data_1;
SHOW CREATE DATABASE data_2;
#删除数据库
DROP DATABASE data_2;
create table 表名(
字段名 类型(长度) [约束],
字段名 类型(长度) [约束],
...
);
类型:
varchar(n) 字符串
int 整形
double 浮点
date 时间
timestamp 时间戳
约束:
primary key 主键,被主键修饰字段中的数据,不能重复、不能为null。
查看所有表
show tables
查看表结构
desc 表名
删除表
drop table 表名
修改表结构样式
alter table 表名 add 列名 类型(长度) [约束]
例如:
CREATE TABLE category(
cid VARCHAR(20) PRIMARY KEY ,
cname VARCHAR(50)
);
## 没有主键
CREATE TABLE category2(
cid VARCHAR(20),
cname VARCHAR(50)
);
## 创建表之后,可以查询创建表语句 (数据在可视化视图中显示不全)
SHOW CREATE TABLE category;
#删除表
DROP TABLE category2;
#修改表结构 -- 如果SQL语句中使用到关键字,建议使用重音符括住 `
##添加字段
ALTER TABLE category ADD `desc` VARCHAR(50);
##修改字段类型
ALTER TABLE category MODIFY `desc` VARCHAR(100);
##修改整个字段
ALTER TABLE category CHANGE `desc` description VARCHAR(100);
##删除字段
ALTER TABLE category DROP description;
##修改表名
RENAME TABLE category TO category2;
##修改字符串
ALTER TABLE category2 CHARACTER SET GBK;
插入表记录
-- 向表中插入某些字段
insert into 表 (字段1,字段2,字段3..) values (值1,值2,值3..);
--向表中插入所有字段,字段的顺序为创建表时的顺序
insert into 表 values (值1,值2,值3..);
注意:
n 值与字段必须对应,个数相同,类型相同
n 值得数据大小必须在字段的长度范围内
n 除了数值类型外,其它的字段类型的值必须使用引号引起。(建议单引号)
如果要插入空值,可以不写字段,或者插入 null。
例如:
#插入数据
INSERT INTO category (cid,cname) VALUES(‘c001‘,‘服装‘); #相同的语句不能执行2次,主键重复。
INSERT INTO category (cid,cname) VALUES(‘c002‘,‘奢侈品‘);
INSERT INTO category (cid,cname) VALUES(‘c003‘,‘汽车‘);
#插入部分数据
INSERT INTO category (cid) VALUES(‘c004‘);
INSERT INTO category (cname) VALUES(‘测试‘); #如果cid为主键,默认值为空字符串,不能为null
INSERT INTO category2 (cid,cname) VALUES(‘c001‘,‘服装‘); #如果没有主键约束,数据可以录入多条
update 表名 set 字段名=值,字段名=值,...;
--更新符号条件记录的指定字段
update 表名 set 字段名=值,字段名=值,... where 条件;
删除记录
delete from 表名 [where 条件];
或者
truncate table 表名;
注意:
删除方式:delete 一条一条删除,不清空auto_increment记录数。
truncate 直接将表删除,重新建表,auto_increment将置为零,从新开始。
标签:引号 ddl upd .sql varchar 主键重复 hang roo lint
原文地址:http://www.cnblogs.com/learnjfm/p/6870220.html