
/** 创建数据库 **/
CREATE DATABASE dbname DEFAULT CHARACTER SET character_name;
例如:创建一个 testdb 数据库
/** 创建testdb数据库 **/
CREATE DATABASE testdb;mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| testdb |
+--------------------+
5 rows in set (0.00 sec)mysql> show create database testdb;
+----------+-----------------------------------------------------------------------------------------------+
| Database | Create Database |
+----------+-----------------------------------------------------------------------------------------------+
| testdb | CREATE DATABASE `testdb` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ |
+----------+-----------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)mysql> use testdb;
Database changed/** 修改数据库字符集 **/
mysql> alter database testdb DEFAULT CHARACTER SET utf8;
Query OK, 1 row affected, 1 warning (0.00 sec)
/** 修改后查看如下 **/
mysql> show create database testdb;
+----------+-----------------------------------------------------------------+
| Database | Create Database |
+----------+-----------------------------------------------------------------+
| testdb | CREATE DATABASE `testdb` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+-----------------------------------------------------------------+
1 row in set (0.00 sec)mysql> show character set;
+----------+---------------------------------+---------------------+--------+
| Charset | Description | Default collation | Maxlen |
+----------+---------------------------------+---------------------+--------+
| armscii8 | ARMSCII-8 Armenian | armscii8_general_ci | 1 |
| ascii | US ASCII | ascii_general_ci | 1 |
| big5 | Big5 Traditional Chinese | big5_chinese_ci | 2 |
| binary | Binary pseudo charset | binary | 1 |
| cp1250 | Windows Central European | cp1250_general_ci | 1 |
| cp1251 | Windows Cyrillic | cp1251_general_ci | 1 |
| cp1256 | Windows Arabic | cp1256_general_ci | 1 |
| cp1257 | Windows Baltic | cp1257_general_ci | 1 |
| cp850 | DOS West European | cp850_general_ci | 1 |
| cp852 | DOS Central European | cp852_general_ci | 1 |
| cp866 | DOS Russian | cp866_general_ci | 1 |
| cp932 | SJIS for Windows Japanese | cp932_japanese_ci | 2 |
| dec8 | DEC West European | dec8_swedish_ci | 1 |
| eucjpms | UJIS for Windows Japanese | eucjpms_japanese_ci | 3 |
| euckr | EUC-KR Korean | euckr_korean_ci | 2 |
| gb18030 | China National Standard GB18030 | gb18030_chinese_ci | 4 |
| gb2312 | GB2312 Simplified Chinese | gb2312_chinese_ci | 2 |
| gbk | GBK Simplified Chinese | gbk_chinese_ci | 2 |
| geostd8 | GEOSTD8 Georgian | geostd8_general_ci | 1 |
| greek | ISO 8859-7 Greek | greek_general_ci | 1 |
| hebrew | ISO 8859-8 Hebrew | hebrew_general_ci | 1 |
| hp8 | HP West European | hp8_english_ci | 1 |
| keybcs2 | DOS Kamenicky Czech-Slovak | keybcs2_general_ci | 1 |
| koi8r | KOI8-R Relcom Russian | koi8r_general_ci | 1 |
| koi8u | KOI8-U Ukrainian | koi8u_general_ci | 1 |
| latin1 | cp1252 West European | latin1_swedish_ci | 1 |
| latin2 | ISO 8859-2 Central European | latin2_general_ci | 1 |
| latin5 | ISO 8859-9 Turkish | latin5_turkish_ci | 1 |
| latin7 | ISO 8859-13 Baltic | latin7_general_ci | 1 |
| macce | Mac Central European | macce_general_ci | 1 |
| macroman | Mac West European | macroman_general_ci | 1 |
| sjis | Shift-JIS Japanese | sjis_japanese_ci | 2 |
| swe7 | 7bit Swedish | swe7_swedish_ci | 1 |
| tis620 | TIS620 Thai | tis620_thai_ci | 1 |
| ucs2 | UCS-2 Unicode | ucs2_general_ci | 2 |
| ujis | EUC-JP Japanese | ujis_japanese_ci | 3 |
| utf16 | UTF-16 Unicode | utf16_general_ci | 4 |
| utf16le | UTF-16LE Unicode | utf16le_general_ci | 4 |
| utf32 | UTF-32 Unicode | utf32_general_ci | 4 |
| utf8 | UTF-8 Unicode | utf8_general_ci | 3 |
| utf8mb4 | UTF-8 Unicode | utf8mb4_0900_ai_ci | 4 |
+----------+---------------------------------+---------------------+--------+
41 rows in set (0.00 sec)mysql> drop database testdb;
Query OK, 0 rows affected (0.00 sec)mysql> create database testdb;
Query OK, 1 row affected (0.00 sec)
mysql> use testdb;
Database changed
mysql> create table students ( id int not null auto_increment primary key,
-> stu_name varchar(10) not null comment '姓名',
-> age tinyint comment '年龄',
-> class_no varchar(10) comment '班级',
-> key idx_stu_name(stu_name)
-> ) ENGINE=InnoDB;
Query OK, 0 rows affected (0.01 sec)/** 查看字段名及字段类型等 **/
mysql> desc students;
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| stu_name | varchar(10) | NO | MUL | NULL | |
| age | tinyint(4) | YES | | NULL | |
| class_no | varchar(10) | YES | | NULL | |
+----------+-------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
/** 查看建表语句 **/
mysql> show create table students\G
*************************** 1. row ***************************
Table: students
Create Table: CREATE TABLE `students` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`stu_name` varchar(10) NOT NULL COMMENT '姓名',
`age` tinyint(4) DEFAULT NULL COMMENT '年龄',
`class_no` varchar(10) DEFAULT NULL COMMENT '班级',
PRIMARY KEY (`id`),
KEY `idx_stu_name` (`stu_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)ALTER TABLE table_name MODIFY [COLUMN] column_define [FIRST|AFTER column_name]ALTER TABLE table_name ADD column_define [FIRST|AFTER column_name]ALTER TABLE table_name change column_name_old column_name_new column_define [FIRST|AFTER column_name]ALTER TABLE table_name DROP [COLUMN] column_name;DROP TABLE table_name;ALTER TABLE table_name ADD KEY key_name(column_names);/** students表的class_no 添加索引 **/
mysql> alter table students add key idx_class_no(class_no);
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0ALTER TABLE table_name_old RENAME TO table_name_new;/** 将students表名变更为 student **/
mysql> alter table students rename to student;
Query OK, 0 rows affected (0.01 sec)INSERT INTO table_name(column_name_list) values(values_list1),(values_list2);/** 逐条新增记录 **/
mysql> insert into student(stu_name,age,class_no) values('张三1',20,'201901');
Query OK, 1 row affected (0.00 sec)
mysql> insert into student(stu_name,age,class_no) values('李四',19,'201901');
Query OK, 1 row affected (0.00 sec)mysql> insert into student(stu_name,age,class_no) values('王五',19,'201901'),('Lisa',21,'201902');
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0mysql> insert into student values(5,'陈六',21,'201902');
Query OK, 1 row affected (0.00 sec)/** 查询当前所有记录 **/
mysql> select * from student;
+----+----------+------+----------+
| id | stu_name | age | class_no |
+----+----------+------+----------+
| 1 | 张三1 | 20 | 201901 |
| 2 | 李四 | 19 | 201901 |
| 3 | 王五 | 19 | 201901 |
| 4 | Lisa | 21 | 201902 |
| 5 | 陈六 | 21 | 201902 |
+----+----------+------+----------+
5 rows in set (0.00 sec)
/** 使用null占位,让自增列自动自增 **/
mysql> insert into student values(null,'李白',21,'201901');
Query OK, 1 row affected (0.00 sec)
/** 使用 0 占位,让自增列自动自增 **/
mysql> insert into student values(0,'李白1',23,'201902');
Query OK, 1 row affected (0.00 sec)
mysql> select * from student;
+----+----------+------+----------+
| id | stu_name | age | class_no |
+----+----------+------+----------+
| 1 | 张三1 | 20 | 201901 |
| 2 | 李四 | 19 | 201901 |
| 3 | 王五 | 19 | 201901 |
| 4 | Lisa | 21 | 201902 |
| 5 | 陈六 | 21 | 201902 |
| 6 | 李白 | 21 | 201901 |
| 7 | 李白1 | 23 | 201902 |
+----+----------+------+----------+
7 rows in set (0.00 sec)/** 新增一条记录,如果不存在id=7的记录,则新增,如果存在则将名称变更为杜甫 **/
mysql> insert into student values(7,'李白1',23,'201902') on duplicate key update stu_name = '杜甫';
Query OK, 2 rows affected (0.00 sec)
mysql> select * from student;
+----+----------+------+----------+
| id | stu_name | age | class_no |
+----+----------+------+----------+
| 1 | 张三1 | 20 | 201901 |
| 2 | 李四 | 19 | 201901 |
| 3 | 王五 | 19 | 201901 |
| 4 | Lisa | 21 | 201902 |
| 5 | 陈六 | 21 | 201902 |
| 6 | 李白 | 21 | 201901 |
| 7 | 杜甫 | 23 | 201902 |
+----+----------+------+----------+
7 rows in set (0.00 sec)/** 字段数与value值的个数不匹配 **/
sql> insert into student values('王维',23,'201902');
ERROR 1136 (21S01): Column count doesn't match value count at row 1/** 创建表 **/
mysql> create table class(class_no varchar(10) not null primary key ,class_name varchar(10),location varchar(50));
Query OK, 0 rows affected (0.01 sec)
/** 插入2条记录 **/
mysql> insert into class values('201901','2019级01班','博学北楼A401'),('201902','2019级02班','博学北楼A402');
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0/** 将王五同学的年龄变为20 **/
mysql> update student set age =20 where stu_name='王五';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0/** 同时将201902班的学生年龄+1,且班级location变更为博学北楼B401 **/
mysql> update student s,class c
-> set s.age=s.age+1 ,c.location ='博学北楼B401'
-> where s.class_no =c.class_no and c.class_no = '201902';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4 Changed: 4 Warnings: 0/** 将Lisa同学除名 ** /
mysql> delete from student where stu_name='Lisa';
Query OK, 1 row affected (0.00 sec)/** 同时删除201901班的学生及班级信息 **/
mysql> delete s,c from student s ,class c where s.class_no=c.class_no and c.class_no='201901';
Query OK, 5 rows affected (0.00 sec)
## 当然 此处也可以删除其中一个表的内容/** 查询所有字段 **/
mysql> select * from student;
+----+----------+------+----------+
| id | stu_name | age | class_no |
+----+----------+------+----------+
| 5 | 陈六 | 22 | 201902 |
| 7 | 杜甫 | 24 | 201902 |
+----+----------+------+----------+
2 rows in set (0.00 sec)
/** 查询其中需要的字段 **/
mysql> select stu_name from student;
+----------+
| stu_name |
+----------+
| 杜甫 |
| 陈六 |
+----------+
2 rows in set (0.00 sec)
/** 按条件筛选对应记录的对应字段 ** /
mysql> select stu_name,class_no from student where age < 23;
+----------+----------+
| stu_name | class_no |
+----------+----------+
| 陈六 | 201902 |
+----------+----------+
1 row in set (0.00 sec)mysql> select stu_name,c.class_name,c.location from student s, class c where s.class_no=c.class_no ;
+----------+--------------+------------------+
| stu_name | class_name | location |
+----------+--------------+------------------+
| 陈六 | 2019级02班 | 博学北楼B401 |
| 杜甫 | 2019级02班 | 博学北楼B401 |
+----------+--------------+------------------+
2 rows in set (0.00 sec)/** 创建用户test1,且所有主机都可以访问 **/
create user test1@'%' identified by 'test1@123';
/** 创建用户test2,只能ip为192.168.24.128的主机能访问 **/
create user test2@'192.168.24.128' identified by 'test2@123';
/** 创建用户test3,只能ip为192.168.25.0网段的主机能访问 **/
create user test3@'192.168.25.%' identified by 'test3@123';/** 授予对testdb库的DML权限给test1 **/
mysql> grant select ,insert ,update,delete on testdb.* to test1@'%';
Query OK, 0 rows affected (0.00 sec)
/** 授权所有权限给test2,且包含授权权限 **/
mysql> grant all on *.* to test2@'192.168.24.128' with grant option;
Query OK, 0 rows affected (0.00 sec)
/** 授权所有权限给test3,但不包含授权权限 **/
mysql> grant all on *.* to test3@'192.168.25.%';
Query OK, 0 rows affected (0.01 sec)
/** 刷新权限,此处纯属介绍此功能,只是在update表操作时才必须执行,其他情况一般不用执行即可生效 ** /
mysql> flush privileges;mysql> GRANT SELECT ON *.* TO t@'172.%' IDENTIFIED BY 'tt@123';
Query OK, 0 rows affected, 1 warning (0.01 sec)/** 查看创建用户脚本 **/
mysql> show create user test2@'192.168.24.128';
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| CREATE USER for test2@192.168.24.128 |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| CREATE USER 'test2'@'192.168.24.128' IDENTIFIED WITH 'caching_sha2_password' AS '$A$005$tv>#%npc?9~\9rlqFJoUYA11a8SAEcAFJ72fchoHYce1tJpSxaQ8zXa4' REQUIRE NONE PASSWORD EXPIRE DEFAULT ACCOUNT UNLOCK PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT PASSWORD REQUIRE CURRENT DEFAULT |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
/** 查看授权信息 **/
mysql> show grants for test2@'192.168.24.128';
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for test2@192.168.24.128 |
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, CREATE ROLE, DROP ROLE ON *.* TO `test2`@`192.168.24.128` WITH GRANT OPTION |
| GRANT APPLICATION_PASSWORD_ADMIN,BACKUP_ADMIN,BINLOG_ADMIN,BINLOG_ENCRYPTION_ADMIN,CONNECTION_ADMIN,ENCRYPTION_KEY_ADMIN,GROUP_REPLICATION_ADMIN,PERSIST_RO_VARIABLES_ADMIN,REPLICATION_SLAVE_ADMIN,RESOURCE_GROUP_ADMIN,RESOURCE_GROUP_USER,ROLE_ADMIN,SERVICE_CONNECTION_ADMIN,SESSION_VARIABLES_ADMIN,SET_USER_ID,SYSTEM_VARIABLES_ADMIN,XA_RECOVER_ADMIN ON *.* TO `test2`@`192.168.24.128` WITH GRANT OPTION |
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+/** 回收test1用户的删除权限 **/
mysql> revoke delete on testdb.* from test1@'%';
Query OK, 0 rows affected (0.01 sec)/** 修改用户密码 **/
mysql> alter user test2@'192.168.24.128' identified by 'Test2@456';
Query OK, 0 rows affected (0.01 sec)/** 删除用户 test2@192.168.24.128 **/
mysql> drop user test2@192.168.24.128;
Query OK, 0 rows affected (0.00 sec)
/** 查看结果 ** /
mysql> select user ,host from mysql.user;
+------------------+--------------+
| user | host |
+------------------+--------------+
| test1 | % |
| test3 | 192.168.25.% |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+--------------+
6 rows in set (0.00 sec)1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,
Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功
目录第1题连续问题分析:解法:第2题分组问题分析:解法:第3题间隔连续问题分析:解法:第4题打折日期交叉问题分析:解法:第5题同时在线问题分析:解法:第1题连续问题如下数据为蚂蚁森林中用户领取的减少碳排放量iddtlowcarbon10012021-12-1212310022021-12-124510012021-12-134310012021-12-134510012021-12-132310022021-12-144510012021-12-1423010022021-12-154510012021-12-1523.......找出连续3天及以上减少碳排放量在100以上的用户分析:遇到这类
ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear
我正在尝试查询我的Rails数据库(Postgres)中的购买表,我想查询时间范围。例如,我想知道在所有日期的下午2点到3点之间进行了多少次购买。此表中有一个created_at列,但我不知道如何在不搜索特定日期的情况下完成此操作。我试过:Purchases.where("created_atBETWEEN?and?",Time.now-1.hour,Time.now)但这最终只会搜索今天与那些时间的日期。 最佳答案 您需要使用PostgreSQL'sdate_part/extractfunction从created_at中提取小时
我找到了这样的东西:Rails:Howtolistdatabasetables/objectsusingtheRailsconsole?这一行没问题:ActiveRecord::Base.connection.tables并返回所有表但是ActiveRecord::Base.connection.table_structure("users")产生错误:ActiveRecord::Base.connection.table_structure("projects")我认为table_structure不是Postgres方法。如何列出Postgres数据库的Rails控制台中表中的所有
Ruby中防止SQL注入(inject)的好方法是什么? 最佳答案 直接使用ruby?使用准备好的语句:require'mysql'db=Mysql.new('localhost','user','password','database')statement=db.prepare"SELECT*FROMtableWHEREfield=?"statement.execute'value'statement.fetchstatement.close 关于ruby-防止SQL注入(inject
我正在编写一个Rails应用程序,它将监视某些特定数据库的数据质量。为了做到这一点,我需要能够对这些数据库执行直接SQL查询——这当然与用于驱动Rails应用程序模型的数据库不同。简而言之,这意味着我无法使用通过ActiveRecord基础连接的技巧。我需要连接的数据库在设计时是未知的(即:我不能将它们的详细信息放在database.yaml中)。相反,我有一个模型“database_details”,用户将使用它来输入应用程序将在运行时执行查询的数据库的详细信息。因此与这些数据库的连接实际上是动态的,细节仅在运行时解析。 最佳答案
(本文是网络的宏观的概念铺垫)目录计算机网络背景网络发展认识"协议"网络协议初识协议分层OSI七层模型TCP/IP五层(或四层)模型报头以太网碰撞路由器IP地址和MAC地址IP地址与MAC地址总结IP地址MAC地址计算机网络背景网络发展 是最开始先有的计算机,计算机后来因为多项技术的水平升高,逐渐的计算机变的小型化、高效化。后来因为计算机其本身的计算能力比较的快速:独立模式:计算机之间相互独立。 如:有三个人,每个人做的不同的事物,但是是需要协作的完成。 而这三个人所做的事是需要进行协作的,然而刚开始因为每一台计算机之间都是互相独立的。所以前面的人处理完了就需要将数据
我正在使用Rails4应用程序,它需要创建大量对象以响应来自另一个系统的事件。当我调用create!时,主键列上出现非常频繁的ActiveRecord::RecordNotUnique错误(由PG::UniqueViolation引起)我的模型之一。我在SO上找到了其他答案,建议挽救异常并调用retry:beginTableName.create!(data:'here')rescueActiveRecord::RecordNotUnique=>eife.message.include?'_pkey'#Onlyretryprimarykeyviolationslog.warn"Retr