SQL语句分类数据定义语言:简称DDL(Data Definition Language),用来定义数据库对象:数据库,表,列等。关键字:create,alter,drop等 数据操作语言:简称DML(Data Manipulation Language),用来对数据库中表的记录进行更新。关键字:insert,delete,update等 数据控制语言:简称DCL(Data Control Language),用来定义数据库的访问权限和安全级别,及创建用户。 数据查询语言:简称DQL(Data Query Language),用来查询数据库中表的记录。关键字:select,from,where等
使用SQL语句时的注意事项:SQL语句不区分大小写, 建议关键字大写,其他小写. 我们今天写数据类型的时候要注意, Java中的String类型, 对应的是数据库中的 varchar(长度). 值的个数必须和列的个数对应. 值的类型和列的类型也必须对应. 如果是数字类型可以直接写, 其他类型用''括起来. SQL语句的结束标记是: 分号; 进行删除和修改操作之前, 一定一定一定要备份.
SQL语句操纵数据库(CURD) //create update read delete
增
创建数据库:create database 数据库名;
删
删除数据库:drop database 数据库名;
改
修改数据库:alter database 数据库名 character set '字符编码';
alter database 数据库名 charset '字符编码';
查
查询所有数据库
show database;
查询指定数据库的字符集
show create database 数据库名;
使用数据库(切换库)
use 数据库名
SQL语句操作数据库表
增
创建表
create tables 数据表名(
列名 数据类型 [约束],
列名 数据类型 [约束],
列名 数据类型 [约束]
);
数据类型:
Java中的数据类型 MySQL中的数据类型
byte/short/int/long tinyint/smallint/int/long
float/double float/double
char/String char/varchar(长度)
Date Date/Time/DateTime/StampDate
DateTime: 可以自定义时间.
StampDate: 时间戳, 采用当前系统的默认时间.
File BLOB/TEXT(CLOB)
约束
作用: 用来保证数据的完整性和安全性.
分类:
单表约束:
主键约束: primary key //auto_increment(自动增长)
唯一约束: unique
非空约束: not null
多表约束:
外键约束: foreign key
创建表:
create table users(
uid int primary key auto_increment,
uname varchar(20),
pw varchar(20)
);
删
删除表:drop table 数据表名;
改:
给表增加一列字段
alter table 表名 add 列名 数据类型 约束;
修改某列字段的约束和类型
alter table 表名 modify 列名 数据类型 约束;
修改某列字段的名字,约束,类型
alter table 表名 change 旧列名 新列名 数据类型 约束;
删除指定的列
alter table 表名 drop 列名;
修改表名
rename table 旧表名 to 新表名;
修改表的码表
alter table 表名 character set 指定的码表;
alter table 表名 charset 指定的码表;
查:
查询所有的数据表: show tables;
查询指定数据表(表结构):desc 数据表名;
SQL语句操作数据表中的数据
增:
添加一条数据:
insert into 数据表名(列名1,列名2,列名3) values(值1,值2,值3);
批量添加: //添加多条数据
insert into 数据表名(列名1,列名2,列名3) values(值1,值2,值3),(值1,值2,值3),(值1,值2,值3);
通过"DOS命令窗口"往MySQL中添加中文, 然后查看的时候发现会出现乱码情况
因为控制台默认码表是: GBK, MySQL的服务器端和客户端的默认码表都是: UTF8, 所以会出现乱码.
解决方案:
方式一: 临时性的把 MySQL的客户端的码表设置为: gbk //set names 'gbk';
方式二: 永久性设置, 在my.ini配置文件中, 将client的码表改为: GBK.
删:
delete from 数据表名 where 条件;
改:
update 数据表名 set 列名1=值,列名2=值,列名3=值 where 条件;
备份数据:
备份表不存在:
create table 备份表名 select * from 要备份的表名;
备份表已经存在:
insert into 备份表名 select * from 要备份的表名;
查:
最基本的查询:
select * from 数据表名;
select 列名1,列名2,列名3 from 数据表名;
一个完整的SQL查询语句的格式
select 列名1,列名2,列名3 from 数据表名 where 分组前的条件筛选 group by 要分组的列
having 分组后的条件筛选 order by 排序的列 [asc/desc];
修改表添加列
alert table 列名
add 字段名 类型(长度) [约束]
修改表修改列的类型长度及约束
alert table 列名
modify 列名 类型(长度) [约束]
修改表修改列名
alter table 表名 change 旧列名 新列名 类型(长度) 约束;
修改表删除列
alter table 表名 drop 列名
修改表名
rename table 表名 to 新表名
修改表的字符集
alter table 表名 character set '字符集'
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。