数据库复习

 SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的
         SQL的语法组成
  DML( Data Manipulation Language数据操作语言)查询、插入、删除和修改数据库中的数据;SELECT、INSERT、 UPDATE 、DELETE等;
DCL( Data Control Language数据控制语言用来控制存取许可、存取权限等;GRANT、REVOKE 等;
DDL( Data Definition Language数据定义语言)
用来建立数据库、数据库对象和定义其列
CREATE TABLE 、DROP TABLE、ALTER TABLE 等 
功能函数
日期函数、数学函数、字符函数、系统函数等
     创建数据库
语法:create  database   数据库名
叙述:创建一个具有指定名称的数据库。如果要创建的数据库已经存在,或者没有创建它的适当权限,则此语句失败。
例:建立一个student库。
 mysql> create database student;
     创建表
语法:create table 表名(
列名1  列类型  [<列的完整性约束>],
列名2  列类型  [<列的完整性约束>],
        ... ...   );
叙  述:在当前数据库下新创建一个数据表。
列类型:表示该列的数据类型。
例:
建立一个表school,其由两列组成,第一列属性为非空,并做为主键,并自增
create table school(
  school_id  int(10) not null auto_increment primary key,
  school_name varchar(20) 
);
           CHAR和VARCHAR类型
  CHAR类型和VARCHAR类型长度范围都是0~255之间的大小。他们之间的差别在于MySQL处理存储的方式:
CHAR把这个大小视为值的准确大小(用空格填补比较短的值)。
VARCHAR类型把它视为最大值并且只使用了存储字符串实际上需要的字节数(增加了一个额外的字节记录长度)。因而,较短的值当被插入一个语句为VARCHAR类型的字段时,将不会用空格填补(然而,较长的值仍然被截短 )。
             BLOB和TEXT类型
BLOB是二进制大对象,如果想存储二进制数BLOB将是最佳选择,而TEXT与之相同,只是BOLB按照二进制编码排序(区分大小写),TEXT按照字符文本模式排序(不区分大小写)。
             ENUM 和SET类型
是特殊的串类型,其列值必须从固定的串集中选择,二者差别为前者必须是只能选择其中的一个值,而后者可以多选。(不推荐使用)
 
 
插入

语法:

       INSERT INTO 表名[(列名[,列名]...)]VALUES(值[,值]...);

注意事项:

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

       数据不能超出长度

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

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

       插入空值使用null

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

中文数据

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

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

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

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

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

删除

语法

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

注意事项

       WHERE子句选择满足条件的行进行更新, 如果不写, 则更新所有行

语法

       DELETE FROM 表名 [where 条件语句]

注意事项

       如果不加where子句, 将删除表中所有记录

       delete只能用作删除行, 不能删除某一列的值, 需要用update

       在delete和update的时候需要注意表与表之间的关联关系

       删除表中所有数据可以使用: TRANCATE 表名, 这种方式会删除旧表重新创建, 在数据较多的时候使用

备份恢复数据库

备份数据库

       输入quit退出mysql, 在cmd.exe中输入:

mysqldump –u用户名 –p密码 数据库名 > 文件名

恢复数据库

       进入mysql.exe之后, 使用数据库之后

       source 文件名

主键约束 primary key

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

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

 

创建表时设置主键

create table test2(

id int primary key,

name varchar(20)

);

 

删除主键

alter table test2 dropprimary key;

 

在制定列上添加主键

alter table test2 changeid id int primary key;

alter table test2 addprimary key(id);

 

设置主键自动增长

create table test3(

id int primary key auto_increment,

name varchar(20)

);

 

删除自增长

alter table test3 changeid id int;

 

设置自增长

alter table test3 changeid id int auto_increment;

 

UUID主键

128位的2进制, 32位16进制加上4个-

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值