欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

mysql中对表的操作教程

程序员文章站 2024-01-27 11:55:28
...
数据库的创建和删除
  黑窗口启动数据库服务: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('张','加拿大');

以上就是mysql中对表的操作教程的详细内容,更多请关注其它相关文章!

相关标签: mysql 单表