MySQL随笔(二)

数据表的操作

这个和数据库的操作区别类型相差不是很大,也是一样的步骤

这里就先讲一下:

创建数据表:

语法:

create table 表名(
    列名    类型,
    列名    类型,
    列名    类型,
)default charset=utf8;

实例:(当然我这里只是写了id和name这两个你其实还可以看你的情况来多加几个)

create table tb2(
    id int,
    name varchar(16)
)default charset=utf8;

语法升级版:

CREATE TABLE [IF NOT EXISTS] 表名(
  字段1, 数据类型 [约束条件] [默认值],
  字段2, 数据类型 [约束条件] [默认值],
  字段3, 数据类型 [约束条件] [默认值],
  ……
  [表约束条件]
  );
--(其实大体来讲是差不多的,这个[]括号了面的条件可加可不加)

注:表名称在Windows操作系统上不区分大小写,在Linux操作系统上区分大小写

好咯,通过上面所写要进入稍微正式一点点的开发咯~

先通过我写的MySQL随笔(一)MySQL随笔(二)来完成这个‘大大的’任务把

(1)中来创建一个tb2的数据库

(2)然后进入该数据中

(3)再查看tb2数据库中存在的所有数据表

显示:Empty set (0.03 sec)这个是说暂时还没有数据

(4)在tb2数据库中创建一个名字叫t_tb2的表,这个表中存在id, name, pid三个列,id为int类型且不能为空,name一个行的定义长度不超过30个字符,pid为int类型... ...有点小小朝纲了

当然我会把这个后面源码丢给你(你也可以尝试自己写),刚刚开始的话创建(完成上三步,不包括第四步)到这一步的话就还证明你不错,当然,没有写出来也是常态,我记得本大帅哥之前就没有写出来【抠鼻】

CREATE TABLE t_tb2(
    id INT NOT NULL,
    name VARCHAR(30),
    pid int
    ); 

创建完毕后可以在重新查看一下数据库中存在的数据表

至于查询语句是啥子去看我写的【抠鼻】

注:记得多实操,多实操,多实操(重要的事情说三遍)

遇到重复创建同一个表名咋搞?

还记得MySQL随笔(一)中所写的数据库同名了咋办不?

其实也就是这个的进阶版

其实语法相差不大,下面上才艺:

CREATE TABLE IF NOT EXISTS 数据表名;

你看看,和数据库的建立基本没有差别

其表达意思也近似:如果加上了IF NOT EXISTS关键字,则表示的含义为:如果当前数据库中不存在要创建的数据表,则创建数据表;如果当前数据库中已经存在要创建的数据表,则忽略建表语句,不再创建数据表。

当然,这个数据表的创建后续还会学很多东西,不如主键,外键,指定递增,给表中指定添加内容,修改名字,删除表啥的,但是你不要怕,这个你是怕也没有用的,还记得“欧里给”老大哥之前一直说的一句话吗?面对恐惧最好的办法就是以微笑去面对,加油,欧里给!

所以你也要加油呀

最后再说几遍实操,实操,实操一点要实操;不要怕,很多东西一遍搞不定就多搞几遍,如果自己乱搞乱搞,把这个软件(数据库)软件搞出问题了大不了删库重来,不要怕,程序员的意志就是这个时候打磨出来的。

注:下面的有兴趣就看看(给大家扩展一下这个还有啥操作)

这个是对t_tb2的进一步升级(你要注意哦,我以后可能会出题目哦)

放在这里可不看

INSERT INTO t_tb2
    (id, name, pid)
    VALUES
    (1, '北京', 1),
    (2, '上海', 1),
    (3, '天津', 2),
    (4, '重庆', 2),
    (5, '深圳', NULL),
    (6, '厦门', 5),
    (7, '帅帅', NULL);
    
    
    
WITH RECURSIVE area_depth(id, name, path) AS
    (
    SELECT id, name, CAST(id AS CHAR(300))
    FROM t_area WHERE pid IS NULL
    UNION ALL
    SELECT a.id, a.name, CONCAT(ad.path, ',', a.id)
    FROM area_depth AS ad 
    JOIN t_area AS a
    ON ad.id = a.pid
    )
    SELECT * FROM area_depth ORDER BY path;

下面是我从我张大哥那里搬砖过来的

嘎嘎嘎,上链接:MYSQL(一) - 张岩林 - 博客园希望他看到不要锤我【抠鼻】

mysql表操作

-- 查看表
show tables;                    # 查看数据库全部表

select * from 表名;             # 查看表所有内容



-- 创建表
create table 表名(
    列名  类型  是否可以为空,
    列名  类型  是否可以为空
)ENGINE=InnoDB DEFAULT CHARSET=utf8


-- 删除表
drop table 表名



-- 清空表内容
delete from 表名
truncate table 表名


-- 修改表
添加列:   alter table 表名 add 列名 类型
删除列:   alter table 表名 drop column 列名
修改列:
          alter table 表名 modify column 列名 类型;  -- 类型
          alter table 表名 change 原列名 新列名 类型; -- 列名,类型
  
添加主键:
          alter table 表名 add primary key(列名);
删除主键:
          alter table 表名 drop primary key;
          alter table 表名  modify  列名 int, drop primary key;
  
添加外键: alter table 从表 add constraint 外键名称(形如:FK_从表_主表) foreign key 从表(外键字段) references 主表(主键字段);
删除外键: alter table 表名 drop foreign key 外键名称
  
修改默认值:ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;
删除默认值:ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;


mysql表内容操作

-- 增
insert into 表 (列名,列名...) values (值,值,...)
insert into 表 (列名,列名...) values (值,值,...),(值,值,值...)
insert into 表 (列名,列名...) select (列名,列名...) from 表
例:
 insert into tab1(name,email) values('zhangyanlin','zhangyanlin8851@163.com')
 
 
 -- 删
 delete from 表                                      # 删除表里全部数据
delete from 表 where id=1 and name='zhangyanlin'   # 删除ID =1 和name='zhangyanlin' 那一行数据



-- 改
update 表 set name = 'zhangyanlin' where id>1



-- 查
select * from 表
select * from 表 where id > 1
select nid,name,gender as gg from 表 where id > 1

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值