MySQL基本语句
MySQL数据库的一个实例(Server Instance)可以同时句含多个数据库,MySQL使用如下命令查看当前实例下包含多少个数据库:
show databases;
如果用户需要创建新的数据库,则可以使用如下命令:
create database [IF NOT EXISTS]数据库名;
如果用户需要删除指定数据库,则可以使用如下命令:
drop database 数据库名;
建立了数据库之后,如果想操作该数据库(例如为该数据库建表,在该数据库中执行查询等操作) 则需要进入该数据库。进入指定数据库可以使用如下命令:
use 数据库名;
进入指定数据库后,如果需要查询该数据库下包含多少个数据表,则可以使用如下命令:
show tables;
如果想查看指定数据表的表结构(查看该表有多少列,每列的数据米刑等信息),则可以使用如下命令:
desc 表名;
MySQL 数据库安装成功后,在其安装目录下有一个bin路径,该路径下包含一个mysql命令,该命今用于启动MySQL命令行客户端。执行mysql命令的语法如下:
mysql -p密码 -u 用户名 h 主机名 --default-character-set=utf-8
例:
mysql -u root -proot
DDL 语句
1.创建表的语法
标准的建表语句的语法如下:
create table[模式名.]表名 ( #可以有多个列定义 -columnName1 datatype [default expr], ... )
例如下面的建表语句:
create table test( test_id int, test_price decimal, test_name varchar(255) default 'xxx', test_desc text, test_img blob, test_date datetime );
如果使用子查询建表语句,则可以在建表的同时插入数据。子查询建表语句的语法如下:
create table[模式名.]表名 [column[,column...]] as subquery;
下面语句使用子查询来建表。
#创建hehe数据表,该数据表和user_inf完全相同,数据也完全相同 create table hehe as select * from user inf;
2.修改表结构的语法
①增加列定义的语法如下:
alter table 表名 add( #可以有多个列定义 column_namel datatype [default expr], ... );
为数据表增加字段的SQL语句如下:
# 为hehe数据表增加一个heheid字段,该字段的类型为int alter table hehe add hehe id int; 并为hehe数据表增加aaa、bbb字段,两个字段的类型都为varchar(255) alter table hehe add aaa varchar{255) default 'xxx', bbb varchar (255) );
②修改列定义的语法如下:
alter table 表名 modify column_name datatype [default expr] [first|after col_name];
上面语法中first或者after col_name指定需要将目标修改到指定位置。
从上面修改语法中可以看出,该修改语句每次只能修改一个列完义,代码加下
# 将hehe表的hehe id列修改成varchar(255)出开 alter table hehe modifty hehe id varchar (255); 将hehe表的bbb列修改成1nt类型 alter table hehe modify bbb int;
③从数据表中删除列的语法比较简单:
alter table表名 drop column name
删除列只要在drop后紧跟需要删除的列名即可。例如:
# 删除hehe表中的aaa字段 alter table hehe drop aaa;
④重命名数据表的语法格式如下:
alter table表名 rename to 新表名
如下SQL语句用于将hehe表命名为wawa:
# 将hehe数据表重命名为wawa alter table hehe rename to wawai
MySQL 为alter table提供了change选项,该选项可以改变列名。change选项的语法如下
alter table表名 chanae old column_name new_column name type [default expr] [firstiafter col name]
对比chane和modify两个选项,不难发现:change选项比modify选项书了一个列名,因为change选项可以改变列名,所以它需要两个列名。一般而言,如果不需要改变列名,使用alter table 的modify选项即可,只有当需要修改列名时才会使用change选项。语句如下:
# 将wawa数据表的bbb字段重命名为ddd alter table wawa change bbb ddd int;
3.删除表的语法
删除表的语法格式如下:
drop table表名;
如下SQL语句将会把数据库中已有的wawa数据表删除:
# 删除数据表 drop table wawa;
4. truncate表
对于大部分数据库而言,truncate都被当成DDL处理,truncate被称为“截断”某个表一一它的作用是删除该表里的全部数据,但保留表结构。相对于DML里的delete命令而言,truncate的速度要快得多,而且truncate不像delete 可以删除指定的记录,truncate只能一次性删除整个表的全部记录trucate 命令的语法如下:
truncate 表名
5 数据库约束
1.NOT NULL 约束
非空约束用于确保指定列不允许为空,非空约束是比较特殊的约束,它只能作为列级约束使用,只能使用列级约束语法定义。
这里介绍一下SQL中的null值,SQL中的null不区分大小写。