登录MySQL:
mysql -h 127.0.0.1 -u 用户名 -p
mysql -D 所选择的数据库名 -h 主机名 -u 用户名 -p
mysql> exit # 退出mysql> quit # 退出
创建数据库:
对于表的操作需要先进入库 use 库名;
create database samp_db character set gbk;-- 创建一个名为 samp_db 的数据库,数据库字符编码指定为 gbk
drop database samp_db;-- 删除 库名为samp_db的库
show databases; -- 显示数据库列表。
use samp_db; -- 选择创建的数据库samp_db
show 表名; -- 显示samp_db下面所有的表名字
describe 表名; -- 显示数据表的结构
delete from 表名; -- 清空表中记录
创建数据库表:
CREATE TABLE `user_accounts` (
`id` int(100) unsigned NOT NULL AUTO_INCREMENT primary key,
`password` varchar(32) NOT NULL DEFAULT '' COMMENT '用户密码',
`reset_password` tinyint(32) NOT NULL DEFAULT 0 COMMENT '用户类型:0-不需要重置密码;1-需要重置密码',
`mobile` varchar(20) NOT NULL DEFAULT '' COMMENT '手机',
`create_at` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
`update_at` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
-- 创建唯一索引,不允许重复
UNIQUE INDEX idx_user_mobile(`mobile`)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8
COMMENT='用户表信息';
数据类型的属性解释
-
NULL:数据列可包含NULL值;
-
NOT NULL:数据列不允许包含NULL值;
-
DEFAULT:默认值;
-
PRIMARY:KEY 主键;
-
AUTO_INCREMENT:自动递增,适用于整数类型;
-
UNSIGNED:是指数值类型只能为正数;
-
CHARACTER SET name:指定一个字符集;
-
COMMENT:对表或者字段说明;
添加索引:
语法:ALTER TABLE 表名字 ADD INDEX 索引名字 ( 字段名字 )
-- –直接创建索引CREATE INDEX index_user ON user(title)
-- –修改表结构的方式添加索引ALTER TABLE table_name ADD INDEX index_name ON (column(length))
-- 给 user 表中的 name字段 添加普通索引(INDEX)ALTER TABLE `table` ADD INDEX index_name (name)
-- –创建表的时候同时创建索引CREATE TABLE `table` (
`id` int(11) NOT NULL AUTO_INCREMENT ,
`title` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL ,
`time` int(10) NULL DEFAULT NULL ,
PRIMARY KEY (`id`),
INDEX index_name (title(length)))
-- –删除索引DROP INDEX index_name ON table
主键索引(PRIMARY key):
语法:ALTER TABLE 表名字 ADD PRIMARY KEY (字段名字)
-- 给 user 表中的 id字段 添加主键索引(PRIMARY key)ALTER TABLE `user` ADD PRIMARY key (id);
重命名表:
语法:alter table 表名 rename 新表名;
-- 重命名 students 表为 workmates: alter table students rename workmates;
删除列:
语法:alter table 表名 drop 列名称;
-- 删除表students中的 birthday 列: alter table students drop birthday;
修改列:
语法:alter table 表名 change 列名称 列新名称 新数据类型;
-- 将表 tel 列改名为 telphone: alter table students change tel telphone char(13) default "-";
-- 将 name 列的数据类型改为 char(16): alter table students change name name char(16) not null;
添加列:
语法:alter table 表名 add 列名 列数据类型 [after 插入位置];
-- 在表students的最后追加列 address: alter table students add address char(60);
-- 在名为 age 的列后插入列 birthday: alter table students add birthday date after age;