首页 存档 技术 查看内容

【程序员必备】sql语句大全 一、创建和删除数据库 二、数据库编码问题 三、创建表格 ...

2018-3-30 13:00 |来自: 互联网 276 0

摘要: SQL语句大全 一、创建和删除数据库 1、创建用户 //创建用户且置密码,在MySQL中行,但在Oracle中行 ----必须在超级管理员身份下操作 create user hncu identified by '1234' 2、创建数据库 //创建数据库 并手动指 ...


SQL语句大全


一、创建和删除数据库

1、创建用户

//创建用户且置密码,在MySQL中行,但在Oracle中行 ----必须在超级管理员身份下操作

create user hncu identified by '1234'


2、创建数据库

//创建数据库 并手动指定编码格式
//错,因为根据手册的查询,数据库名应该在 EXISTS后面
CREATE DATABASE hncu IF NOT EXISTS DEFAULT CHARACTER SET 'utf8';
//改正:
CREATE DATABASE IF NOT EXISTS hncu DEFAULT CHARACTER SET 'utf8';


3、删除数据库

DROP DATABASE mydb2; //删除数据库
//查询(显示数据库)
SHOW DATABASES; /*:用Tab键补全代码,类似MyEclipse中的Alt / */


二、数据库编码问题

1、指定数据库编码

方法1:可以在MySQL的配置文件如my.ini中指定:

default-character-set = GBK 或

default-character-set = utf8

方法2:在创建数据库时自己指定,如:

CREATE DATABASE IF NOT EXISTS hncu DEFAULT CHARACTER SET 'utf8';

▲相比较而言,对我们来讲,第2种方法更好。一是配置文件是平台,不能随意改,而且通常是由DBA来做的,我们没权设置,甚至MySQL都不在我们的电脑中。二是只

要我们自己在创建数据库时自己指定编码,无论平台默认配置的是什么编码,对我们没有影响,一句话不依赖你的平台----可移置及兼容性好。

2、查看数据库编码


SHOW VARIABLES; //查询系统中的所有变量

SHOW VARIABLES WHERE variable_name LIKE 'character%'; //查询系统中所有的编码方面的参数

查询结果:

character_set_client utf8 //客户端编码 (不同的客户端显示的可能不一样,如cmd窗口和SQLyong)

character_set_connection utf8 //客户端连接数据库时用的编码

character_set_database gbk //数据库的默认编码(一般来讲,这是由my.ini配置文件定的。这是没进数据库时的通用编码)

character_set_filesystem binary //这是数据库自己存储数据文件时用的编码,跟我们关系不大

character_set_results utf8 //查询之后的结果集的编码

character_set_server gbk //MySQL数据库服务器自己的编码 iso8859-1在这里称Latin1

character_set_system utf8

character_set_dir MySQL安装目录 \share\charsets



对我们来讲,为了不出现乱码,必须保证client和connection的编码一致,否则就会乱码。

character_set_database 数据库的编码必须要能够支持中文,否则输入中文有问题的


3、设置(修改)数据编码

//如何设置指定的编码

set character_set_client=gbk;

SET character_set_client=gbk;

SHOW VARIABLES WHERE variable_name LIKE 'character%';

SELECT * FROM stud;//原来的数据显示正常

INSERT INTO stud VALUES(1011,'城院',20,88,'数计学院');

SELECT * FROM stud;//刚刚插入的那条记录,是乱码 //因为我们这里client是gbk,而connection是utf8,不一致了

SET character_set_connection=gbk;//已经把client和connection设成gbk,一致了

INSERT INTO stud VALUES(1012,'城院2',20,88,'数计学院');

SELECT * FROM stud;//显示刚刚插入的那条记录,还是乱码。因为数据库表stud的编码是utf8,而我们客户端与它的连接都是gbk


▲综上,client、connection、我们所访问的数据库的编码 这三者都要一致且应该是支持中文的编码

上面只能保证添加到数据库中的汉字不会出现乱码。

▲如果读取出来,还要看results、所访问的数据库的编码和我们java代码中的解码是否一致。


三、创建表格

//创建表格

CREATE TABLE stud(

id INT PRIMARY KEY,

sname VARCHAR(30) ,

age INT);

-----------------------------------------------------------------------
varchar(20) ----可变的char数组,类似Java当中的String

char(20) ----固定长度的char数组

//SQL语言 全部忽略大小写----大小写不敏感

-----------------------------------------------------------------------

四、对表格操作

USE hncu;

SHOW TABLES;//查询(显示)表格

DESC stud; //查看数据表student的表结构

1、往数据表中插入数据

INSERT INTO stud VALUES( 1003,'Rose',22 );

//插入记录,当数据不全时,要指定列名

INSERT INTO stud(id,sname,age,score) VALUES(1010,'李小明',25,90);//未指定列名的方式赋值时,必须要给全,默认值不给也不行

INSERT INTO a(id,sname) VALUES(1,'Tom'); //错:UNIQUE限定该列的值必须唯一(可以为NULL,但最多只能有一个)

INSERT INTO a(id,sname) VALUES(2,'Tom'); //对,性别未赋,则用默认
//性能优化:指定列名的方式性能更好!


2、查询数据

SELECT * FROM stud;//查询表中所有的数据

SELECT sname,age FROM stud; //只查询(显示)表中的指定列


3、删除数据

DELETE FROM stud WHERE age=30; //删除年龄为30的表记录

4、更新数据

UPDATE stud SET sname='杰克' WHERE sname='Jack'; //更改数据


5、更改表结构ALTER TABLE (添加一列)

ALTER TABLE stud ADD COLUMN score NUMERIC(4,2);

※※※※※建立联合主键※※※※※
ALTER TABLE sj ADD CONSTRAINT sj_pk PRIMARY KEY(studId,jectId);
//添加外键约束1(为sj表的studId字段添加外键student(id)约束)
ALTER TABLE sj ADD CONSTRAINT sj_fk1 FOREIGN KEY(studId) REFERENCES student(id);
//添加外键约束2(为sj表的jectId字段添加外键ject(id)约束)
ALTER TABLE sj ADD CONSTRAINT sj_fk2 FOREIGN KEY(jectId) REFERENCES ject(id);


6、创建视图

CREATE VIEW studView AS SELECT * FROM stud WHERE score

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部