mysql -uroot -p
用法|介绍 ---|--- -D, --database=name |打开指定数据库 --detailmiter=name| 指定分隔符 -h, --host=name |服务器 -p, --password[=name] |密码 -P, --port=# |端口号 (-P 大写的P) --prompt=name |设置提示符 -u, --user=name |用户名 -V, --version |输出版本信息且退出
登录的时候指定:
mysql -uroot --prompt \h -p
登录后指定:
语法: prompt 提示符
参数 | 含义 |
---|---|
\D | 完整的日期; |
\d | 当前数据库 |
\h | 服务器名称 |
\u | 当前用户 |
显示当前服务器版本:
select version();
显示当前日期时间:
select now();
显示当前用户:
select user();
SQL语句必须以分号结尾
create {database | schema} [if not exists] db_name [default] character set [=] charset_name;
show create database db_name;
alter {database | schema} [db_name] [default] character set [=] charset_name;
drop {database | schema} [if exists] db_name;
无符号位是有符号位的2倍
打开数据库后,使用use
命令选择数据表:
use db_name;
select database();
语法:
create table [if not exists] table_name ( column_name data_type, ... )
eg:
create table tb1( id int unsigned primary key auto_inscrement, username varchar(20), salary float(8,2) );
语法:
show tables [from db_name] [like 'pattern' | where expr];
语法:
show columns from tbl_name;
或者使用describe tbl_name
语句:
describe tbl_name;
语法:
inset [into] tbl_name [(col_name,...)] values(val,...);
省略col_name时需要给所有的字段赋值。
语法:
select expr,... from tbl_name;
(expr ----表达式)
记录查找后面会具体研究。
插入记录时,如果没有明确为字段赋值,则自动赋予默认值:
create table tb( id smallint unsigned auto_increment primary key, sex enum('男','女', '保密') default '保密' );
如果存储引擎不是InnoDB,可以修改存储引擎,在配置文件my.ini中修改以下自段:
default-storage-engine=INNODB
实例:
create table provinces( id smallint unsigned primary key auto_increment, pname varchar(20) not null ); create table users( id smallint unsigned primary key auto_icrement, username varchar(10) not null, pid smallint unsigned, foreign key(pid) references provinces (id) );
show indexes from users;
指定了主键和外键时会自动创建索引
create table provinces( id smallint unsigned primary key auto_increment, pname varchar(20) not null ); create table users( id smallint unsigned primary key auto_icrement, username varchar(10) not null, pid smallint unsigned, foreign key(pid) references provinces (id) on delete cascade );
上面代码和之前的区别是在最后一行多出了on delete cascade
字段,表示删除父表时子表也删除。
alter table tbl_name add [column] col_name column_definition [first | after col_name];
alter table tbl_name add [column] (col_name column_definition, ...);
区别: 添加多列不能指定添加位置,只能添加到所有列的最后。
alter table tbl_name drop [column] col_name;
可以删除多列,中间用逗号分隔,也可以同时添加列:
alter table tbl_name drop [column] col_name1, drop col_name2,add (col_name3 column_definition);
alter table tbl_name add [constraint [symbol] primary key [index_type] (index_col_name, ...)];
alter 5able tbl_name add [constraint [symbol]] unique [index | key] [index_name] [index_type] (index_col_name,...);
alter table tbl_name add [constraint [symbol]] foreign key [index_name] (index_col_name, ...) reference_definition;
update tbl_name set col_name=value where expr;
未完待续
如对本文有疑问, 点击进行留言回复!!
网友评论