前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql简单基础

mysql简单基础

作者头像
不断折腾
发布2019-09-23 10:45:12
8390
发布2019-09-23 10:45:12
举报
文章被收录于专栏:折腾折腾再折腾

无论是风里,还是在雨里,我都在这里守候着你~

数据类型

整数:int,bit

小数:decimal,

decimal(3,1)表示一共三位数,小数占一位。

字符串:varcahr,char

char表示固定的字符串比如char(2)需要2位,不足填充空格

varchar表示可变长字符串

text:储存大文本,一般大于4000时使用。

日期时间:date,time,datetime

枚举:enum,enum('男','女'),你男可以用1表示,1对应男,2就是女,这就是枚举。

对于图片,视屏,不储存在数据库中,表中值存储文件路径。

约束

主键primary key:物理上储存的数据

非空not null:不允许为空

唯一unique:唯一键,不允许重复

默认default:设置默认,不输入会自动填充默认值

外键foreign key: 关系键

以命令行的形式操作数据库

windows+r cmd 进入终端

输出mysql -uroot -p 连接数据库,输入你的mysql密码,会出现如下,表示连接成功。

-uroot:-u表示用户名,root是用户名

-p:密码

或者输入 mysql -uroot -p123456 也会进入,123456是我mysql的密码。

exit:退出。

quit:也是退出。

mysql的sql语句都有;

查看数据库:show databases;

查看数据库版本:select version();

显示当前时间:select now();

创建一个数据库:create database 数据库名;

出现Query Ok, 1 row affected ,表示执行成功!

你show databases; 就会看到 我们刚刚创建的数据库python_data。

但是还记得我们用图形化工具时创建数据库指定了编码utf8吗?

因此我们在创建数据库时,也要指定编码:

create databse 数据库名 charset=utf8;

这条语句才支持我们的中文。但是你已经创建了该数据库,我们需要删除后从新创建。

删除数据库:drop databse 数据库名;

对表的操作

在创建一个数据库后,我们创建表,我们在创建表前需要进入某个数据库。

进入数据库:user 数据库名;

查看当前所在数据库:select database();

查看当前数据库中所有的表:show tables;

创建表:create table 表名(字段1 类型,字段2 类型);以此类推。

比如:create table table1(id int,name varchar(30));

如果我想添加一些约束,比如不能为空,主键约束,唯一约束等等怎么写?

create table table1(

id int primary key not null aotu_increment,

name varchar(30) not null

);

直接在后面接着打约束即可。

直接写int 是可以为负的,怎么样不让他有负值?以及其他的用法。

我们以创建table1为例,id(编号),name(姓名),age(年龄),hight(身高),sex(性别),

classid (班级id)。

create table table1(

id int unsigned primary key not null aotu_increment,

name varchar(30) not null,

age tinyint unsigned default 18,

hight decimal(4,1),

sex enum('男','女') defaul "保密",

classid int unsigned

);

在int后添加一个unsigned即可。

primary key:主键

not null:不能为空

aotu_increment:自动增长

查看表结构:desc 表名;

添加数据

自动增长字段不需要你填写。

insert into 表名 values("张三",18,180.5,"男",1);

但是如果我们只对某些字段插入数据就要这样写:

不想插入的数据可以不写,一般没有插入的默认为空,如果给了not null约束,必须插入数据。

前后是一一对应的关系。也就是可以部分插入。

insert into 表名(name,age,hight,sex,classid) values("张三",18,180.5,"男",1);

多行插入:

insert into 表名(name,age,hight,sex,classid) values("张三",18,180.5,"男",1),("李四",19,170.6,"女",2);

一下插入两行数据。

查询表中的数据:

*号表示查询全部

select * from 表名;

查询表中的某个字段。

如果我们只想查询name值。

select name from 表名;

查询name和age。以,隔开。

select name,age from 表名;

给以存在的表添加一个生日字段。

第一种方法:

删除当前表,重新创建。

第二种方法:

修改表结构。

alter table table1 add birthday datetime;

由于datetime是精确到时分秒的,我们要将他修改成date。

修改表的数据类型:

不修改字段名:

alter table table1 modify birthday date;

修改字段名将birthday修改成bday:

alter table table1 chenge birthday bday date;

删除一个字段名:

alter table table1 drop hight;

如果该字段有值,它的值也会没有。

删除表:

drop table 表名;

查看创建表的sql语句:

show create table 表名;

查看创建数据库的sql语句:

show create database 数据库名;

修改表中的数据:

全部修改:

update 表名 set 字段名=要修改的值;

例如: update table1 set name = "王五";

修改其中一个:

update 表名 set 字段名=要修改的值 where id = 要修改的id;

上面的是根据id去修改,你也可以根据name去修改,当然name可能重复,找一个唯一的,那就是id。

例如:

update table1 set age=60 where id = 1;

修改多个用,隔开:

update table1 set age=60,sex = "女" where id = 1;

查询中的where:

取出id小于60的所有数据。

select * from where id<60;

取出name等于张三的数据。

select * from where name = "张三";

同理其他也是一样的。

取出多个条件的(名字等于张三,年龄等于18):

select * from where name = "张三" and age=18;

取出name等于张三或者年龄为18的

select * from where name = "张三" or age=18;

给一个别名:

select name as 姓名 from table1;

输出的表的表头就不会是name,会显示汉子姓名。

删除一个表中的数据:

delete from table1 where id =1;

删除id等于1的数据,你也可以根据name来删除。

delete from table1

同样清空数据表。

上面的删除有一个问题,id为自动增长,删除时,比如id为1,删除后,添加数据是从2开始。破坏表结构,也就是1不见了,也不会补充上去。这是物理删除。

所以我们如果在公司,都是假的删除,也就是说给一个字段,0表示删除,1表示正常,也就是说删除的时候实际上是修改,把他修改成0就表示删除了。这是逻辑删除。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-11-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 python入门到放弃 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档