数据库是不认识JAVA语言的,但是我们同样要与数据库交互,这时需要使用到数据库认识的语言SQL语句,它是数据库的代码。
结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
创建数据库、创建数据表、向数据表中添加一条条数据信息均需要使用SQL语句。
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语句可以单行或多行书写,以分号结尾
- 可使用空格和缩进来增强语句的可读性
- MySQL数据库的SQL语句不区分大小写,建议使用大写,例如:SELECT * FROM user。
- 同样可以使用/**/的方式完成注释
-
MySQL中的我们常使用的数据类型如下
图片.png
详细的数据类型如下(不建议详细阅读!)

数据库操作:Database
创建数据库
格式:
create database 数据库名;
create database 数据库名 character set 字符集;
例如:
创建数据库 数据库中数据的编码采用的是安装数据库时指定的默认编码 utf8
CREATE DATABASE mytest;
创建数据库 并指定数据库中数据的编码
CREATE DATABASE mytest CHARACTER SET utf8;
图片.png
查看数据库
查看数据库MySQL服务器中的所有的数据库:
show databases;
查看某个数据库的定义的信息:
show create database 数据库名;
例如:
图片.png
删除数据库
drop database 数据库名称;
例如:
图片.png
其他数据库命令
- 切换数据库:
use 数据库名;- 查看正在使用的数据库:
select database();
表结构相关语句
创建表
格式:
create table 表名(
字段名 类型(长度) 约束,
字段名 类型(长度) 约束
);
例如:
/*
创建数据表的格式
create table 表名(
列名1 数据类型 约束,
列名2 数据类型 约束,
列名3 数据类型 约束
);
创建用户表,用户编号,姓名,用户的地址
将编号列,设置为主键约束,保证列的数据唯一性,非空性
primary key AUTO_INCREMENT
让主键列数据,实现自动增长
*/
CREATE TABLE users(
uid INT PRIMARY KEY AUTO_INCREMENT,
uname VARCHAR(20),
uadress VARCHAR(200)
)

主键约束
主键是用于标识当前记录的字段。它的特点是非空,唯一。在开发中一般情况下主键是不具备任何含义,只是用于标识当前记录。
格式:
- 1.在创建表时创建主键,在字段后面加上 primary key.
create table tablename(
id int primary key,
.......
)
- 在创建表时创建主键,在表创建的最后来指定主键
create table tablename(
id int,
.......,
primary key(id)
)
- 3.删除主键:alter table 表名 drop primary key;
alter table sort drop primary key;
- 4.主键自动增长:一般主键是自增长的字段,不需要指定。
实现添加自增长语句,主键字段后加auto_increment(只适用MySQL)
例如:
###创建分类表
CREATE TABLE sort (
sid INT PRIMARY KEY auto_increment, #分类ID
sname VARCHAR(100) #分类名称
);
查看表
- 查看数据库中的所有表:
格式:show tables; -
查看表结构:
格式:desc 表名;
例如:
图片.png
删除表
- 格式:drop table 表名;
例如:drop table sort;
修改表结构格式
- 修改表添加列
/*
添加列,添加字段
alter table 表名 add 列名 数据类型 约束
*/
ALTER TABLE users ADD tel INT ;
例如:

- 修改表修改列的类型长度及约束
/*
修改列, 在原有的列上修改
修改列名,数据类型约束
alter table 表名 modify 列名 数据类型 约束
*/
ALTER TABLE users MODIFY tel VARCHAR(50);
例如:

- 修改表修改列名
/*
修改列名
alter table 表名 change 旧列名 新列名 数据类型 约束
*/
ALTER TABLE users CHANGE tel newtel DOUBLE;
例如:

- 修改表删除列
/*
删除列
alter table 表名 drop 列名
*/
ALTER TABLE users DROP newtel;
例如:

- 修改表名
/*
修改表名
rename table 表名 to 新名
*/
RENAME TABLE users TO newusers
例如:

- 修改表的字符集
*/
为分类表 category 的编码表进行修改,修改成 gbk
*/
ALTER TABLE category CHARACTER SET gbk;
至此,MySQL的入门语句应该差不多了,后面将着重介绍SQL的增删改查语句。
网友评论