• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > mysql中对表的操作教程

mysql中对表的操作教程

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了mysql,单表等相关知识,希望本文的分享对您有所帮助
数据库的创建和删除
  黑窗口启动数据库服务: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


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 分享下mysql各个主要版本之间的差异
  • MySQL essential版本和普通版本有什么区别?
  • redhat 5.4下安装MYSQL全过程
  • 如何用SQL命令查看Mysql数据库大小
  • 解析mysql中如何获得数据库的大小
  • 解析mysql修改为utf8后仍然有乱码的问题
  • 5个常用的MySQL数据库管理工具详细介绍
  • 解析在MySQL里创建外键时ERROR 1005的解决办法
  • 解析远程连接管理其他机器上的MYSQL数据库
  • mysql 精简过程(删除一些文件)

相关文章

  • 2018-12-05Mysql原先内容不改变并在后面增加内容的sql语句详解
  • 2018-12-05C3P0连接池+MySQL的配置及wait_timeout问题的解决方法_MySQL
  • 2018-12-05推荐10款drbd8.4.2特效(收藏)
  • 2018-12-05几个简单的基本的sql语句
  • 2018-12-05全文检索技术 sql server
  • 2018-12-05mysql获取数据库和表的信息
  • 2018-12-05JDBC--数据库管理系统
  • 2018-12-05关于Mysql如何将数据分组后取出时间最近的数据详解
  • 2018-12-05oracle下加密存储过程的方法_Oracle应用_脚本之家
  • 2018-12-05内连接、左外连接、右外连接、交叉连接它们的区别是什么

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • mysql索引不生效的解决方法
    • 从数据库中取出最近三十天的数据并生成柱状图
    • MySQL索引使用全程分析
    • MySql insert插入操作的3个小技巧分享
    • Mysql数据库服务器安装与配置教程
    • mysql下普通用户备份数据库时无lock tables权限的解决方法
    • 使用MySQL Slow Log来解决MySQL CPU占用高的问题
    • Cont()与Where().Count()有时性能差别如此之大!
    • 关于派生表的详细介绍
    • mysql中用正则表达式进行搜索匹配教程(三)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有