数据库的创建和删除
黑窗口启动数据库服务:net start mysql
关闭数据库服务:net stop mysql
创建数据库
使用关键字create database
格式:
create database 数据库名;
create database 数据库名 character set 字符集;
查看mysql中所有的数据库
show databases;
查看某个数据库的定义信息
show create database 数据库名 例:show create database mybase;
切换数据库
use 数据库名 例:use test;
查看正在使用的数据库
select database;
删除数据库
drop database 数据库名称 例:drop database test;
创建数据库中的表.
使用关键字create table
[]在数据库中是可选的意思,可以有,可以没有
格式:
create table 表名(
字段名 数据类型[长度] [约束],
字段名 数据类型[长度] [约束],
......
字段名 数据类型[长度] [约束](最后一个不能有逗号)
);
例:创建商品分类表category
create table category(
cid int primary key,
cname varchar(100)
);
查看当前数据库中所有的表
show tables;
查看表结构
desc 表名 例:desc category;
删除表
格式:drop table 表名
例:drop table category;
修改表添加列
alter table 表名 add 列名 类型[长度] [约束];
例:alter table category add name int ;
修改表修改列的类型长度及约束
alter table 表名 modify 列名 类型[长度] [约束];
注意:如果有数据 ,必须注意数据类型varchar-->容易有错误数据
例:alter table category modify description int;
alter table category modify description varchar(20) not null;
修改列名以及数据类型和约束
alter tble 表名 drop 列名;
注意:如果列中有数据 数据就会一起删除了 需谨慎
例:alter table category drop descr;
修改表名
rename table 表名 to 新表名
例:rename table category to student;
修改表的字符集
alter table 表名 character set 字符集
注意:不建议执行 有可能会产生乱码
例:alter table category character set gbk;
往数据库表中插入数据
使用关键字insert [into]
格式:
包含主键:insert into 表名(字段1,字段2,....) values (值1,值2,....);
主键自增,省略主键:insert into 表名 (不包含主键) values (不包含主键);
注意事项:
1.字段和值一定要一一对应(个数,数据类型)
2.除了数值类型(int ,double),其他的数据类型都需要使用引号包裹起来
可以使用''.也可以使用"",建议使用''
包含主键:insert into 表名 (字段1,字段2,...) values (值1,值2,....);
例:insert into category (cid,cname) values (1,"服装");
insert into category (cid,cname) values (1,"彩电");
创建category表主键自增auto_increment(主键自己添加,自己增长)
例:create table category(
cid int primary key auto_increment,
cname varchar(100)
);
主键自增,省略主键:insert into 表名 (不包含主键) values (不包含主键);
例:insert into category (cname) values ("彩电");
批量插入数据
格式:
包含主键:insert into 表名 (字段1,字段2,...) values (值1,值2,...),(值1,值2,...),(值1,值2,...);
主键自增,省略主键:insert into 表名 (不包含主键) values (值1,值2,...),(值1,值2,...)..;
insert into category (cid,cname) values (3,'空调'),(4,'洗衣机');
insert into category (cname) values ('微波炉'),('电磁炉');
省略字段名格式:必须给出全部字段的值(包含主键)
格式:
insert into 表名 values (全部字段的值);
insert into 表名 values (全部字段的值),(全部字段的值),..;
例:insert into category values(7,'冰箱');
insert into category values(8,'笔记本电脑'),('台式机');
添加数据,记不住主键的情况下,可以使用null ,sql会自动计算主键
例:insert into category values (null,'小米6');
更新表数据,使用关键字update(更新,修改) set(设置)
格式:
不带条件过滤,一次修改列中所有的数据
update 表名 set 字段名=字段值,字段名=字段值,...;
带条件过滤,使用关键字where
update 表名 set 字段名=字段值,字段名=字段值,...where 过滤条件;
不低条件过滤(慎用)
例:update category set cname='全部修改';
带条件过滤,使用关键字where
update category set cname='黑白电视机' where cid=4;
删除表数据 使用关键字delete from
格式:
delete from 表名 [where 条件过滤];
delete from 表名 删除表中的所有数据,但是不会删除主键自增
truncate table 表名;删除表中的所有数据,会删除主键自增,让主键自增重置从1开始
delete from 表名 [where 条件过滤];
例:delete from category where cid=4;
delete from 表名
例:delete from category;
使用delete删除之后插入数据,主键会出现断号,没有之前的序号
insert into category (cname) values ('手机');
delete from category where cid=12;
insert into category (cid,cname) values(12,'手动插入指定的主键列');
truncate table 表名
例:truncate table category
主键约束
使用关键primary key
作用:
约束主键列不能为null
不能重复
每个表都必须有一个主键,且只能有一个主键
主键不能使用业务数据
添加主键的第一种方式
在列名之后直接添加
create table persons(
Id_p int primary key,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
insert into persons(Id_p,LastName) values (1,'张');
insert into persons(Id_p,LastName) values (null,'张');-- 非空
insert into persons(Id_p,LastName) values (1,'张');-- 重复
添加主键的第二种方式
使用constraint区域
格式:
[constraint 名称] primary key (字段列表)
CREATE TABLE persons(
Id_P INT,
LastName VARCHAR(255),
FirstName VARCHAR(255),
Address VARCHAR(255),
City VARCHAR(255),
CONSTRAINT pk_id_p PRIMARY KEY(Id_P)
);
constraint如果不给出主键的名字,可以省略关键字constraint
CREATE TABLE persons(
Id_P INT,
LastName VARCHAR(255),
FirstName VARCHAR(255),
Address VARCHAR(255),
City VARCHAR(255),
PRIMARY KEY(Id_P)
);
添加主键的第三种方式
创建表之后,通过修改表结构,添加主键的第一种方式
alter table 表名 add [constraint 名称] primary key (字段列表);
CREATE TABLE persons(
Id_P INT,
LastName VARCHAR(255),
FirstName VARCHAR(255),
Address VARCHAR(255),
City VARCHAR(255)
);
ALTER TABLE persons ADD PRIMARY KEY(Id_P);
删除主键
alter table persons drop primary key;
联合主键
使用两个以上的字段为主键
CREATE TABLE persons(
Id_P INT,
LastName VARCHAR(255),
FirstName VARCHAR(255),
Address VARCHAR(255),
City VARCHAR(255),
PRIMARY KEY(LastName,FirstName)
);
非空约束
使用关键字not null
作用:强制约束某一列不能为null(不接受null值)
创建非空约束的第一种格式,创建表示,字段后直接给出
CREATE TABLE persons(
Id_P INT PRIMARY KEY AUTO_INCREMENT,
LastName VARCHAR(255),
FirstName VARCHAR(255),
Address VARCHAR(255),
City VARCHAR(255) NOT NULL
);
添加数据
INSERT INTO persons(lastname,city) VALUES('张','雄县');
INSERT INTO persons(lastname,city) VALUES('李','null');
INSERT INTO persons(lastname,city) VALUES('王','');
INSERT INTO persons(lastname,city) VALUES('赵',NULL);-- Column 'City' cannot be null
java四大皆空
String s ="";s="null" s=null; void
创建非空约束方式二
修改表结构
alter table 表名 modify 列名 类型[长度] [约束];
CREATE TABLE persons(
Id_P INT PRIMARY KEY AUTO_INCREMENT,
LastName VARCHAR(255),
FirstName VARCHAR(255),
Address VARCHAR(255),
City VARCHAR(255)
);
ALTER TABLE persons MODIFY city VARCHAR(255)NOT NULL;
删除非空约束
alter table persons modify city varchar(255);
唯一约束
使用关键字unique
作用:添加了唯一约束的字段,不能重复
创建唯一约束的第一种格式,创建表时,在字段后直接给出
CREATE TABLE persons(
Id_P INT PRIMARY KEY AUTO_INCREMENT,
LastName VARCHAR(255),
FirstName VARCHAR(255),
Address VARCHAR(255),
City VARCHAR(255) UNIQUE
);
INSERT INTO persons (lastname,city) VALUES('张','毛里求斯');
-- Duplicate entry '毛里求斯' for key 'City'
INSERT INTO persons (lastname,city) VALUES('王','毛里求斯');
创建唯一约束的第二种格式,创建表时使用[constraint 名称] unique (字段列表)
CREATE TABLE persons(
Id_P INT PRIMARY KEY AUTO_INCREMENT,
LastName VARCHAR(255),
FirstName VARCHAR(255),
Address VARCHAR(255),
City VARCHAR(255),
CONSTRAINT UNIQUE(City)
);
创建唯一约束的第三种格式,创建表之后,修改表数据
alter table 表名 modify 列名 类型[长度] [约束];
CREATE TABLE persons(
Id_P INT PRIMARY KEY AUTO_INCREMENT,
LastName VARCHAR(255),
FirstName VARCHAR(255),
Address VARCHAR(255),
City VARCHAR(255)
);
ALTER TABLE persons MODIFY city VARCHAR(255) UNIQUE;
alter table 表名 add [constraint 名称] unique (字段列表)
CREATE TABLE persons(
Id_P INT PRIMARY KEY AUTO_INCREMENT,
LastName VARCHAR(255),
FirstName VARCHAR(255),
Address VARCHAR(255),
City VARCHAR(255)
);
ALTER TABLE persons ADD UNIQUE(City);
删除唯一约束
alert table persons drop index 名称
定义约束的时候,如果没有创建名称,则名称为字符串
alter table persons drop index city;
默认约束
给字段添加一个默认值,如果字段没有插入值,则使用默认值
使用关键字default值
创建默认约束方式一,创建表,列数据类型后面 default '默认值'
CREATE TABLE persons(
Id_P INT PRIMARY KEY AUTO_INCREMENT,
LastName VARCHAR(255),
FirstName VARCHAR(255),
Address VARCHAR(255),
City VARCHAR(255)DEFAULT '中国'
);
INSERT INTO persons (lastname) VALUES('张');
INSERT INTO persons (lastname,city) VALUES('张','加拿大');
Atas ialah kandungan terperinci mysql中对表的操作教程. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!