MySQL数据库和表操作

-- 创建数据库
-- 创建 classroom 数据库
create database 数据库名 default character set 字符编码 collate 排序规则;
    eg:
create database classroom default character set utf8 collate utf8_general_ci;

-- 查看所有数据库
show databases;

-- 选择数据库
use 数据库名;
    eg:
use classroom;

-- 删除数据库
drop database 数据库名;
    eg:
drop database classroom;


-- 创建表
-- 创建 class 表
create table 表名(字段名 数据类型[长度] 属性[非空性 默认值 自增 主键 注释])charset=utf8,engine=innodb;
    eg:
create table class (
id int (11) not null auto_increment primary key comment '学号',
name varchar(20) not null comment '姓名',
sex varchar(2) not null comment '性别',
age int (3) not null comment '年龄',
address varchar(255) not null comment '重庆'
);


-- 修改 表
-- 添加字段
alter table 表名 add 字段名 数据类型 属性;
    eg:
alter table class add stu_name varchar(255) null;
alter table class add birthday timestamp;    -- 时间 日期

-- 修改字段
alter table 表名 change 字段 新字段 类型(参数) 属性;
    eg:
alter table class change stuname name varchar(20) not null;


-- 删除字段
alter table 表名 drop 字段;
    eg:
alter table class drop name;

-- 增加主键
alter table 表名 add primary key (字段);
    eg:
alter table class add primary key (id);

-- 修改 表名
alter table 表名 rename to 新名;
    eg:
alter table class rename to class_one;


-- 复制 表
-- 方法1:不能复制键;
create table 新表 select * from 旧表; 
    eg:
create table class1 select * from class;


-- 方法2:全表赋值;
create table 新表 like 旧表;
    eg:
create table class1 like class;


-- 删除 表
-- 删除 表
drop table 表名;
    eg:
drop table class1;

-- 删除 多表
drop table 表名1,表名2,...表名n;
drop table class,class1,class2;



--数据操作
-- 插入信息
-- 方法1:insert...values
-- 单条语句
insert into class values (21403001,'张三','男',20,'重庆');

-- 多条语句
insert into class values 
(null,'小花1','女',31,'河北3',null,null),
(null,'小花1','女',31,'河北3',null,null),
(null,'小花1','女',31,'河北3',null,null);

-- 方法2:insert...set
insert into class set id=null,name='小花1',sex='女',age=32,address='河北3',birthday=null,remark=null;

-- 方法3:insert...select
insert into class1 select * from class;


-- 查询数据
-- 方法1:查询特定的行与列
select id, name from class where id<=21403005 and name<>'王五';

-- 方法2:限制结果集
select * from class limit 5;
-- 备注:


-- 方法3:排序结果集
select * from class order by name asc;

-- 更新(修改)数据
-- update 表名 set 字段1=值,...字段n=值n [where...] [order by ...] [limit row 值] 
-- set 指定要修改的列
-- order by 按照被指定的顺序对行进行更改
-- limit 限制可以被更新的行的数目
update 表名 set 字段名=值,字段名=值,字段名=值,..... where 条件表达式;
eg:-- 修改 学号 为 21403103 的 姓名 和 年龄
update class2 set name = '张三',age='50' where id = 21403103;
update class2 set address='天津' where id = 21403108;

-- 删除数据
-- 方法1:如果不使用 where,则会删除所有数据
delete from 表名 where [字段=值];
delete from 表名 where 条件表达式; 
-- 提交事务后生效,truncate不能保证事务的安全性。
eg:
delete from class2 where address="上海"; -- 指定字段 删除 数据




-- 插入数据
insert into class2 values(21403100,'张三','男',22,'重庆');


insert into class2 values(null,'王五','男',25,'上海');


-- 查看表
select * from class2;


-- 查看所有表
show tables;


-- 查看 表结构
describe class;






-- 查看当前登录用户
select user();


-- 查看当前数据库
select database();


新闻名称:MySQL数据库和表操作
网址分享:http://ybzwz.com/article/pgesoe.html