MySql数据库命令操作大全

本文详细介绍MySQL数据库的基本操作,包括创建和删除数据库、表的操作、数据的增删改查、权限设置等核心内容,并提供了丰富的示例代码。
CREATE DATABASE dt55 CHARACTER SET utf8;
DROP DATABASE dt55;
USE dt55;


#创建数据库
CREATE TABLE javaTab (
  stName VARCHAR(40),
  stClass VARCHAR(20),
  javaScore FLOAT
)


# 删除数据库
DROP TABLE javaTab;


#添加数据 insert


INSERT INTO `javaTab`(stName,stClass,javaScore) VALUES('王五','dt55班',90.5);


# values是全部数据字段值


INSERT INTO `javaTab` VALUES('王五','dt55班',90.5);


INSERT INTO `javaTab` SET stName = '李四';


INSERT INTO `javaTab`(stName) VALUES('赵六');


#删除数据  delete from 表名 where 条件


DELETE FROM `javaTab` WHERE stName = '李四';


# 同时插入多条数据
INSERT INTO `javaTab`(stName,stClass,javaScore) VALUES('王五','dt55班',90),('李五','dt55班',90.5),('赵五','dt55班',90);


INSERT INTO `javaTab` VALUES('刘攀',NULL,100);


# 关系运算符


# 在mysql中常用的关系运算符:=、>、<、>=、<=、!=(不等于) 放在 where关键字之后


# 查询的语法规则:select 字段1,字段2... from 表名 [ where 条件]


# 1. 查询某一张表中的所有数据记录
SELECT stName,stClass,javaScore FROM `javaTab`;
SELECT * FROM `javaTab`;


SELECT stName FROM `javaTab` WHERE javaScore>=60;


# 区别名 as 也可以省略
SELECT stName AS NAME FROM `javaTab` WHERE javaScore>=60;


# 逻辑运算符 and与  or或  not非
# 查询`javaTab`中班级='dt55班' 并且 javaScore>=60
SELECT *  FROM `javaTab` WHERE stClass='dt55班' AND javaScore>=60; 


SELECT stName AS 学生姓名, stClass AS 班级,javaScore AS java成绩 FROM `javaTab`;
       
SELECT s.stName, s.stClass,s.javaScore  FROM `javaTab` s; 


# 修改语法 update 表名 set 字段1=值,字段2=值 where 条件


UPDATE javaTab SET stName='刘',stClass='dd51' WHERE stName='王五' ; 


UPDATE javaTab SET stName='刘',stClass='dd52' WHERE 1=1 AND stName='刘';                                                                                                                                                                                                                                                                                                                                         


#DDL之操作数据库
# 添加数据库: create database 库名 [character set utf8/gbk]
# 删除指定的数据库:drop dtaabase 库名;
# 查询指定数据库的详细信息
# (1) show create database 库名;
SHOW CREATE DATABASE dt55; 
# (2)查看nysql服务器软件下所有的库
SHOW DATABASES;
#(3)查看当前用户连接的是哪个数据库
SELECT DATABASE();
#(4)连接数据库
USE dt55;
#(5)查看指定数据库下有哪些表
SHOW TABLES;
#(6)查看指定数据库下有哪些表
 CREATE TABLE person(
  id INT,
  username VARCHAR(40),s
  age INT
 );
 
SELECT * FROM javaTab;


mysql -uroot -p123456


# 查看表结构
DESC javaTab;


CREATE TABLE bank(
  id INT,
  username VARCHAR(40),bank
  bankNo VARCHAR(30),
  money FLOAT
 );
# 宝强给马荣转200万(算术运算符:+、-、*)
UPDATE bank SET money = money - 200 WHERE bankNo='119';
UPDATE bank SET money = money + 200 WHERE bankNo='911';


# 马荣给宋喆转200万(算术运算符:+、-、*)
UPDATE bank SET money = money - 200 WHERE bankNo='911';
UPDATE bank SET money = money + 200 WHERE bankNo='110';


# 修改指定库的编码


SHOW CREATE DATABASE dt55;


ALTER DATABASE dt55 CHARACTER SET utf8;


# 查询表结构
CREATE TABLE 表名(字段名1 数据类型,字段名2 数据类型,...);


# 删除表 drop table 表名;
DESC bank;
SHOW CREATE TABLE bank;
RENAME TABLE aa TO bank;


# 增加表字段 alter table 表名 add 字段名 数据类型;


ALTER TABLE bank ADD gender VARCHAR(2);


# 删除表字段
ALTER TABLE bank DROP gender;


#远程连接数据库
mysql -h 192.168.1.105 -uroot -p123456


# 对表字段重命名 alert TABLE 表名 CHANGE 旧字段名 新字段名 新字段数据类型
ALTER TABLE bank CHANGE username aaa VARCHAR(40);


# 修改某一字段的数据类型长度
ALTER TABLE bank CHANGE username username VARCHAR(45);
ALTER TABLE bank ADD birthday DATE;
UPDATE bank SET birthday='2000-2-28' WHERE id=1;
ALTER TABLE bank CHANGE birthday birthday DATETIME;


#------------对数据库的备份与还原---------------


# 第一种通过命令
# mysqldump - uroot -p密码 需要备份的数据库名>备份后的sql脚本名;
mysqldump -h 192.168.1.105 -uroot -p dt55>e:\dt55_back.SQL
# 还原备份的文件数据:首先需要进入到mysql环境 ---> 创建一个库--->在库下还原数据
source e:/dt55_back.SQL;
mysql -h 192.168.1.105 -uroot -p123456 dt55_account<e:/dt55_back.SQL
source 备份的数据库脚本
DROP TABLE bank;
DROP TABLE javaTab;


# 第二种通过sqlyog工具


# 右键--->备份导出
# 删除book表
DROP TABLE Book;

# 给表中的某一字段添加注释:使用comment属性,comment关键字跟在字段的最后面
CREATE TABLE Book(
  B_ID INT COMMENT '图书编号',
  B_NAME VARCHAR(20) COMMENT '图书名称',
  P_ID INT(20) COMMENT '出版社编号',
  B_AUTHOR VARCHAR(20) COMMENT '图书作者',
  B_PRICE FLOAT COMMENT '图书价格'

);

# 对B_ID、B_NAME进行重命名

ALTER TABLE shu CHANGE B_ID id INT COMMENT '图书编号';
ALTER TABLE shu CHANGE B_NAME bookNAme VARCHAR(20) COMMENT '图书名称';

# 删除指定的表字段
ALTER TABLE shu DROP P_ID;

# 修改字段类型的长度
ALTER TABLE shu CHANGE bookName bookName VARCHAR(40);

# 对表重命名
RENAME TABLE Book TO shu;

# 同时添加3条数据Book

INSERT INTO shu VALUES(1,'java从入门到放弃','老阮',16800),(2,'MySql从删库到跑路','老丁',1);

SELECT * FROM shu WHERE id=1;

#--------------数据类型属性---------------

# Mysql中常见的数据类型:varchar(n)、float、int(n) 、tinyint 、 bigint(n)、date、datetime、text

# 默认值:default 初始值

# 非空:NOT NULL 如果某一个字段被NOT NULL修饰后,添加数据时,此字段必须添加

# 自动增长:auto_increment int上 删除后无法找回 长度值尽量要大些最好作用在int类型变量上

# 主键:primary key 不能重复,一张表中只有一个字段可以作为主键 查询 删除条件

# 唯一键:unique ,被unique修饰的数据不能重复 一个表中可以同时有多个字段被unique修饰

DROP TABLE students;
CREATE TABLE students(
	id BIGINT(20) AUTO_INCREMENT PRIMARY KEY COMMENT '学生编号',
	stuName VARCHAR(40) COMMENT '学生姓名',
	gender VARCHAR(2) DEFAULT '男' COMMENT  '性别',
	className VARCHAR(20) NOT NULL COMMENT '班级',
	phone VARCHAR(20) UNIQUE COMMENT '手机号码'
);

DELETE FROM students WHERE id=3;

# delete 可以删除整表数据但自增列不会重新开始
DELETE FROM students WHERE 1=1;

# truncate 批量删除整个表的所有数据 自增变量会从1开始
TRUNCATE TABLE students;

# 创建一张表users

USE dt55;

CREATE TABLE users(
	id BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '用户编号',
	username VARCHAR(40) NOT NULL COMMENT '用户姓名',
	gender VARCHAR(2) DEFAULT '女' COMMENT '性别',
	idcard VARCHAR(20) UNIQUE NOT NULL COMMENT '身份证号',
	javaScore FLOAT DEFAULT '0' COMMENT 'java成绩'
);

INSERT INTO users SET username='古纳于',gender='男', idcard='1111',javaScore=90;
INSERT INTO users SET username='瑜伽被',gender='男', idcard='1121',javaScore=50;
INSERT INTO users SET username='告诫',gender='男', idcard='1131',javaScore=60;
INSERT INTO users SET username='古于',gender='女', idcard='1161',javaScore=80;
INSERT INTO users SET username='古于夹',gender='男', idcard='1171',javaScore=90;


# -------------排序 (order by 字段名 asc/desc)------------
# 排序时字段类型可以是数值类型(int 、float),也可以是varchar类型 如果varchar类型中存储的是中文不能排序,如果字段值都是英文可以按字母排序
# 降序
SELECT * FROM users ORDER BY javaScore DESC;
SELECT * FROM users ORDER BY idcard DESC;
SELECT * FROM users ORDER BY username DESC;

# 升序
SELECT * FROM users ORDER BY javaScore ASC;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值