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();