MYSQL学习01 安装与增删改

MySQL

  • 可以存储大量的数据, 500万 (大于500万 数据优化)

安装

  • 用压缩包安装 配置环境变量
  • 新建配置文件 mysql.ini
[mysqld]
port = 3306  //端口号
basedir = [mysql安装目录]
datadir = [数据存放目录]
skip-grant-tables  //跳过密码验证
  • 启动管理员模式下的CMD 运行命令
//确保所有的C++库都安装
mysqld  -install   //安装mysql服务
mysqld --initialize-insecure --user=mysql  //初始化数据文件
  • 启动Mysql服务 net start mysql

  • 进入mysql mysql -u root -p[密码]

  • 修改密码 update mysql.user set authentication_string=password(‘123456’ ) where user=‘root’ and Host = ‘localhost’;

  • (AlTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘123456’😉 8.0版本

  • 刷新权限 flush privileges;

  • 注释ini中的跳过密码验证 # skip-grant-tables

  • 重启mysql连接测试 net stop mysql && net start mysql && mysql -uroot -p123456

  • show variables like ‘version’; 查看mysql 版本

  • 清空服务 sc delete mysql

使用

--对于特殊的关键字用 ` `避免跟系统关键字冲突

show databases ;    --显示所有数据库
use [dataBaseName] ; --切换数据库
show tables ;  --查看所有的表
describe [tableName] ; --查看数据库中所有表的信息
create database if not exist west; --创建数据库
drop datebase if exist west;  --删除数据库
exit; --断开连接


字段属性

  • unsigned: 无符号的整数 不能为负数
  • zerofill : 零填充 int(3) 5 -> 005
  • **autoincreament:**自增 自动在上一条记录基础上加1 通常用来设置唯一主键 必须是整数类型
  • 非空:not null 如果不赋值 则报错
  • default:默认值
  • 每一个表 都必须存在以下五个字段
    1. id 主键
    2. version 乐观锁
    3. is_delete 伪删除
    4. gst_create 创建时间
    5. gst_update 修改时间
CREATE TABLE `school`.`test1` (
	`id` INT ( 5 ) NOT NULL auto_increment COMMENT '学号',
	`name` VARCHAR ( 30 ) NOT NULL DEFAULT '匿名' COMMENT '姓名',
	`pwd` VARCHAR ( 20 ) NOT NULL DEFAULT '123456' COMMENT '密码',
	`gender` VARCHAR ( 2 ) NOT NULL DEFAULT '女' COMMENT '性别',
	`birthday` datetime DEFAULT NULL COMMENT '出生日期',
	`address` VARCHAR ( 100 ) DEFAULT NULL COMMENT '地址',
	`email` VARCHAR ( 50 ) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY ( `id` ) 
) ENGINE = INNODB DEFAULT CHARSET=utf8

create table [if not exist] tablename(
`字段名` 列类型 [属性] [索引] [注释],
...)[表类型] [字符集设置] [注释]

show create database databaseName -- 查看创建数据库的语句
show create table tableName -- 查看创建表的语句
desc tableName;  -- 查看表的具体结构

数据表的类型

  • 数据库引擎 engine=innodb; engine= myisam;
MYISAMINNODB
事务支持不支持支持
数据行锁定不支持 (表锁)支持
外键约束不支持支持
全文索引支持不支持
表空间大小较小较大(约为2倍)
  • MYISAM : 节约空间 速度较快
  • INNODB: 安全性高 事务的处理 多表多用户操作
  • INNODB: 在数据库表中只有一个*.frm文件, 以及上级目录下的ibdata1文件
  • MYISAM: *.frm 表结构的定义文件 *.MYD 数据文件 *.MYI 索引文件(index)

表的字符集编码默认为Latin1 不支持中文

在my.ini中配置默认的编码 character-set-server=utf8

修改和删除表

ALTER TABLE tableName RENAME AS newName;  --重命名表
ALTER TABLE tableName ADD  age INT(2);  --添加字段
ALTER TABLE tableName MODIFY fieldName int(2); --修改字段约束
ALTER TABLE tableName CHANGE fieldName filedName2 [int(2)]; --修改字段名称或约束
ALTER TABLE tableName DROP fieldName; --删除字段

MySQL数据管理

  • 创立物理外键
--方法一
create table if not exists `grade`(
`id` int(3) not null auto_increment comment '科目id',
`name` varchar(5) not null default '匿名' comment '科目',
`score` int(2) not null default 0 comment '得分',
primary key(`id`)) engine = INNODB default charset=utf8;

create table if not exists `test3`(
`id` int(3) not null auto_increment comment 'id',
`name` varchar(8) not null default '匿名' comment '姓名',
`birthday` datetime not null ,
`gradeid` int(3) not null comment '分数id',
primary key(`id`),
key `FK_grade` (`gradeid`),
constraint `FK_grade` foreign key (`gradeid`) references `grade`(`id`)) engine = INNODB default charset = utf8;

--方法二
create table if not exists `test3`(
    `id` int(3) not null auto_increment comment 'id',
     `name` varchar(8) not null default '匿名' comment '名称',
     `gradeid` int(3) not null comment '分数id',
     primary key(`id`)) engine = INNODB default charset=utf8;
alter table `test3` add constraint `FK_grade` foreign key `gradeid` references `grade`(`id`);
 
  • 数据库就是单纯的表 只用来存数据 只有行(记录)和列(字段)
  • 多张表的数据 通过程序实现

插入数据

insert into tableName() values ();
--字段与值要一一对应
--插入多个值用逗号隔开

修改数据

update tableName set field='' where field='';
//注意修改时间 需加上''  或用常量  current_time

删除

delete from tableName where ;
TRUNCATE TABLE tableName; 命令: 完全清空 重新设置 自增列计数器会归零 不影响事务  只能删除表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值