`
yangshen998
  • 浏览: 1247936 次
文章分类
社区版块
存档分类
最新评论

Sql语句

 
阅读更多

(Sql语句

1.操作库

创建库CREATEDATABASE[IFNOTEXISTS]数据库名[参数[参数][参数]...];

显示库

SHOWDATABASES;

显示数据库创建语句

SHOWCREATEDATABASE数据库名;

修改库

ALTERDATABASE数据库名[参数[参数][参数]...];

注意:不能改数据库的名字

删除库

DROPDATABASE[IFEXISTS]数据库名;

2、操作表

操作表之前使用需要先确定使用哪个数据库

USE数据库名

创建表

CREATETABLE表名(列名类型[,列名类型][,列名类型]...);

查看所有表

SHOWTABLES;

查看表的创建语句

SHOWCREATETABLE表名;

显示表结构

DESC表名;

修改表名

RENAMETABLE原表名TO新表名;

修改字符集

ALTERTABLE表名CHARACTERSET字符集名;

删除表

DROPTABLE表名;

操作列

追加列

ALTERTABLE表名ADD列名类型[,列名类型][,列名类型]...;

修改列类型

ALTERTABLE表名MODIFY列名类型[,列名类型][,列名类型]...;

修改列

ALTERTABLE表名CHANGECOLUMN原列名新列名类型;

删除列

ALTERTABLE表名DROP列名;
操作数据(增删改)

插入

语法:

INSERTINTO表名[(列名[,列名]...)]VALUES([,]...);

注意事项:

插入值类型必须与对应列的数据类型一致

数据不能超出长度

插入值得为之必须与列名顺序一致

字符和日期数据要放在单引号中

插入空值使用null

如果不指定插入哪一列,就是插入所有列

中文数据

由于默认码表是utf8,cmd.exe的码表是gbk,在插入中文数据的时候会报错,所以我们需要修改客户端码表

先查看系统变量:SHOWVARIABLESLIKE'character%';

修改客户端码表:SETcharacter_set_client=gbk;

这样就解决了中文插入的问题,但在查询数据的时候仍然显示为乱码,这是因为mysqlcmd传输数据的时候使用的是utf8

修改输出数据的码表:SETcharacter_set_results=gbk

修改

语法

UPDATE表名SET列名=[,列名=]...[WHERE条件语句];

DISTINCT

语法

SELECT[DISTINCT]列名[,列名]...FROM表名

注意事项

*可以替代列名,表示所有列,但是通常我们为了提高代码的可读性,不使用*

DISTINCT为过滤重复记录

如果DISTINCT后面跟多列,是过滤掉多列合并之后的重复

表的约束

唯一约束unique

unique约束的字段在整张表中唯一,不可重复,不包括多个NULL

创建表时设置唯一

createtabletest(

idint,

namevarchar(20)unique

);

删除唯一约束

showcreatetabletest;发现唯一索引名叫name

altertabletestdropindexname;

添加唯一约束

altertabletestchangenamenamevarchar(20)unique;

非空约束notnull

notnull约束的字段不能为空

创建表时设置非空

createtabletest1(

idint,

namevarchar(20)notnull

);

删除非空约束

altertabletest1changenamenamevarchar(20);

添加非空约束

altertabletest1changenamenamevarchar(20)notnull;

主键约束primarykey

通常我们在设计表的时候需要给每一条记录一个独有的标识,我们就用主键来约束这个标识.

primarykey用来标识一个字段,这个字段是非空且唯一的.

创建表时设置主键

createtabletest2(

idintprimarykey,

namevarchar(20)

);

删除主键

altertabletest2dropprimarykey;

在制定列上添加主键

altertabletest2changeididintprimarykey;

altertabletest2addprimarykey(id);

设置主键自动增长

createtabletest3(

idintprimarykeyauto_increment,

namevarchar(20)

);

删除自增长

altertabletest3changeididint;

设置自增长

altertabletest3changeididintauto_increment;

UUID主键

128位的2进制,3216进制加上4-

java.util.UUID.randomUUID().toString()

3c2372a4-da2a-4470-b17a-f2e50ac79636

外键约束foreignkey

foreignkey约束某一列的值是参照另外一列

创建表时添加外键约束

createtablehusband(

idintprimarykey,

namevarchar(20)notnull

);

createtablewife(

idintprimarykey,

namevarchar(20)notnull,

husband_idint,

constrainthusband_id_fkforeignkey(husband_id)referenceshusband(id)

);

wife表的husband_id的值必须是husband表中的id

被外键引用的记录不能删除,如果想要删除某条被引用的记录,需要找到引用这条记录的记录,解除关联

被外键引用的表不能删除,如果想要删除被引用的表,需要删除所有引用此表的外键

删除外键约束

altertablewifedropforeignkeyhusband_id_fk;

添加外键约束

altertablewifeaddconstrainthusband_id_fkforeignkey(husband_id)referenceshusband(id)

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics