MySQL_study

MySQL

简单命令

–链接数据库(终端)

mysql -u root -p mysql

– 退出数据库

exit

– 查看创建数据库

show databases ; # 必须要有s

– 查看当前正在使用的数据库

select database();  #null指的是空

– 使用某个数据库

use jingdong;

注意:sql语句最后需要有分号;结尾

– 显示数据库版本

select version();

– 显示时间

select now

– 创建数据库

create database demo;

– 指定字符集(默认不是utf-8)

create database demo charset = utf-8;

– 查看数据库的创建语句

show create database demo;

– 删除数据库

drop database demo;

数据表的操作

创建表

– 查看当前数据库中的所有表

show tables;

– 创建表

  • **unsigned 没有符号, 没有负数 **
  • auto_increment表示自动增长
  • age不要用int,int是43亿,tinyint是-129–127
  • 创建一个学生的数据表(id、name、age、high、gender、cls_id)
  • create table 数据表名字 (字段 类型 约束[, 字段 类型 约束]);
  • 多个约束 不分先后顺序
  • enum 表示枚举
  • 最后一个字段不要添加逗号
  • 默认从1开始, 枚举值(1,2,3)和原始值(‘男’,‘女’,)在使用上是等价的
create table students (字段名 字段类型 字段约束);
create table students (
    id int unsigned primary key auto_increment,
    name varchar(15) not null,
    age tinyint unsigned default 0,
    high decimal(5,2) default 0.0,
    gender enum('男','女','中性','保密') default '保密', 
    cls_id int unsigned not null
);

– 查看表的创建语句

show create table students;

查看表结构

desc students

– 查看表内容

select * from classes;

– 修改表结构 alter add/modify()/change(修改字段名字和类型)

– 修改表-添加字段

– alter table 表名 add 列名 类型/约束;
– 生日信息

alter table students add birthday datetime default "2011-11-11 11:11:11";

– 修改表-修改字段:不重命名版
– alter table 表名 modify 列名 类型及约束;

alter table students modify birthday date default "2011-11-11";

– 修改表-修改字段:重命名版
– alter table 表名 change 原列名 新列名 类型及约束;

alter table students change birthday birth date default "2011-11-11";

– 修改表,删除字段

drop table students

数据增删改查(curd)

1、增加insert 的三种方式
1.1 全列插入,值和表的字段顺序一一对应
insert [into] 表名 values (1,2,...)

​ 我认为进行插入之前最好看一下目前表的内容和表结构

​ – 查看表内容

select * from students

​ – 查看表结构

desc students

全列插入在实际中用的不多 ,一旦表结构发生变化,全列插入就会报错。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bBA9q8pj-1574822750680)(C:\Users\liulu\Desktop\临时截图\批注 2019-11-13 222449.png)]

# 小括号有且只能有六个值,id是自动递增的,可以不用管它,但是不管并不是说空着不写,可以使用占位符,只有主键字段才有占位符的概念 0,default, NULL
insert into students values (0, '小乔', 18, 188.00, '女', 2);
insert into students values (0,'小乔', 18, 180.00, '女'); # 错误
insert into students values (default,'大乔', 19, 180.00, '女',2);
1.2 指定列插入,值和列一一对应
 insert into 表名 (1,...) values(1,...)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iKEZNcFK-1574822750681)(C:\Users\liulu\Desktop\临时截图\批注 2019-11-13 222449.png)]

insert into students (name, high, gender) values(“张飞”, 190, "保密")
# 报错了 Field 'cls_id' doesn't have a default value
#  cls_id不能为空,而且我们没有给他加上默认值
insert into students (name, high, gender, cls_id) values(“张飞”, 190, "保密", 1)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL的DENSE_RANK函数是一种窗口函数,用于对查询结果集中的行进行排序,并给每一行分配一个密集的排名值。该函数的语法如下: DENSE_RANK() OVER (PARTITION BY column1, column2... ORDER BY columnA, columnB...) 其中,PARTITION BY子句用于将结果集划分为多个分区,每个分区内的行将独立计算排名。ORDER BY子句用于指定排序的列和排序顺序。 举个例子,假设我们有一个名为"number_test"的表,其中包含id和number两列。我们可以使用如下查询来计算每个id组内number列的密集排名: SELECT id, number, DENSE_RANK() OVER (PARTITION BY id ORDER BY number DESC) number_rank FROM number_test 以上查询会返回一个结果集,其中包含id、number以及每个id组内number列的密集排名值(number_rank)。 总结来说,MySQL的DENSE_RANK函数可以帮助我们在查询结果中按照指定的排序顺序为每一行分配一个密集的排名值。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [leetcode曼哈顿距离-study_SQL:数据分析SQL代码](https://download.csdn.net/download/weixin_38538585/19934420)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [MySQL DENSE_RANK函数简介](https://blog.csdn.net/qq_53373885/article/details/126915504)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值