win 下命令行操作mysal
1.·安装mysql
2.将mysql的bin目录加到环境变量path中
3.win+R运行cmd
4.以管理员权限运行cmd(右击命令提示下标,在弹框中命令提示符继续被右击)
5.请进入MySQL的bin目录,并在bin目录打开命令行窗口,在命令行窗口输入,运行命令 mysqld -install安装mysql服务。(卸载mysql -remove)
6.net (start)mysql 启动mysql服务
7.登录mysql -u root -p
8.修改密码set password =password(‘***’);//修改密码
9.delimiter // 修改mysql的定界符
二:mysql关于事务操作https://www.cnblogs.com/wade-luffy/p/6042712.html
mysql事物介绍:http://baijiahao.baidu.com/s?id=1581064626251873652&wfr=spider&for=pc
mysqlshow命令集合https://www.cnblogs.com/isuben/p/7873472.html
修改数据表操作
在mysql数据中只允许有一个自增字段,自增字段必须是主键,当主键不一定是自增字段。
mysql关于表操作https://www.cnblogs.com/richiewlq/p/7697726.html和https://www.cnblogs.com/wenlj/p/5258102.html
在表操作中mysql中alter语句中change和modify的区别:https://blog.****.net/ya_feng/article/details/22423529
modify适合更改类型节省资源
设为自增的字段必须是主键,所以在删除主键时 先判断此字段是否为自增,如果为自增要 alter table t_name change column_name column_name int;(原类型)取消自增,在alter table t_name drop primary key;
ALTER TABLE t_name auto_increment='22723' ;设置自增值
同理设置先设置主键 alter table ku change id id bigint not null primary key;然后在设置自增alter table ku change id id bigint not null auto_increment;(设置自增只可以用change关键字)
添加索引:https://www.cnblogs.com/luyucheng/p/6289714.html
mysql数据类型
关于varchar与char的区别:char(m) m表示每个数据占m位,当数据小于m时会自动用0补齐,varchar(m)数据长度为数据真实长度+1或2俩个字节长度,他们是用来记录数据长度。其最大位为65535.其中m是指字符。在mysql 4.X时m是指字节。在utf8编码是一个汉字占3个字节,最大长度21848。gbk占俩字节最大长度32768。 当超过长度后会自动转换成text格式,并产生警告。
关于编码 :https://zhidao.baidu.com/question/1047887004693001899.html
为什么用3个字节存储汉字:https://www.cnblogs.com/web21/p/6092414.html
数据表的约束
主键约束 非空约束 默认约束 唯一约束 自增约束 外键约束
外键约束
查看以及修改数据库引擎:https://blog.****.net/idiandi/article/details/60143603或https://blog.****.net/leejianjun/article/details/72467983
数据插入
insert [into] tab_name [(columns_name)] values ("".....);
select *from table_name;其中*是对字段的过滤,不是对纪录。
null :该字段可以为空。Not null:该字段禁止为空。
https://blog.****.net/zztfj/article/details/6181379
3. REPLACE语句
我们在使用数据库时可能会经常遇到这种情况。如果一个表在一个字段上建立了唯一索引,当我们再向这个表中使用已经存在的键值插入一条记录,那将会抛出一 个主键冲突的错误。当然,我们可能想用新记录的值来覆盖原来的记录值。如果使用传统的做法,必须先使用DELETE语句删除原先的记录,然后再使用 INSERT插入新的记录。而在MySQL中为我们提供了一种新的解决方案,这就是REPLACE语句。使用REPLACE插入一条记录时,如果不重 复,REPLACE就和INSERT的功能一样,如果有重复记录,REPLACE就使用新记录的值来替换原来的记录值。
使用REPLACE的最大好处就是可以将DELETE和INSERT合二为一,形成一个原子操作。这样就可以不必考虑在同时使用DELETE和INSERT时添加事务等复杂操作了。
在使用REPLACE时,表中必须有唯一索引,而且这个索引所在的字段不能允许空值,否则REPLACE就和INSERT完全一样的。
在执行REPLACE后,系统返回了所影响的行数,如果返回1,说明在表中并没有重复的记录,如果返回2,说明有一条重复记录,系统自动先调用了 DELETE删除这条记录,然后再记录用INSERT来插入这条记录。如果返回的值大于2,那说明有多个唯一索引,有多条记录被删除和插入。
REPLACE的语法和INSERT非常的相似,如下面的REPLACE语句是插入或更新一条记录。
REPLACE INTO users (id,name,age) VALUES(123, '赵本山', 50);
插入多条记录:
REPLACE INTO users(id, name, age)
VALUES(123, '赵本山', 50), (134,'Mary',15);
REPLACE也可以使用SET语句
REPLACE INTO users SET id = 123, name = '赵本山', age = 50;
上面曾提到REPLACE可能影响3条以上的记录,这是因为在表中有超过一个的唯一索引。在这种情况下,REPLACE将考虑每一个唯一索引,并对每一 个索引对应的重复记录都删除,然后插入这条新记录。假设有一个table1表,有3个字段a, b, c。它们都有一个唯一索引。
CREATE TABLE table1(a INT NOT NULL UNIQUE,b INT NOT NULL UNIQUE,c INT NOT NULL UNIQUE);
假设table1中已经有了3条记录
a b c
1 1 1
2 2 2
3 3 3
下面我们使用REPLACE语句向table1中插入一条记录。
REPLACE INTO table1(a, b, c) VALUES(1,2,3);
返回的结果如下
Query OK, 4 rows affected (0.00 sec)
在table1中的记录如下
a b c
1 2 3
我们可以看到,REPLACE将原先的3条记录都删除了,然后将(1, 2, 3)插入。
https://www.cnblogs.com/chandb/p/7425680.html 数据导入教程